关于springboot:使用delayjob开源项目快速实现延迟调度业务

41次阅读

共计 1244 个字符,预计需要花费 4 分钟才能阅读完成。

1 背景

  • 订单创立一段时间后未领取,如何及时的敞开订单?
  • 用户注册一段时间后未欠缺材料,如何及时揭示?

delay-job 就是专为此场景开发的轻量级分布式提早任务调度零碎,目前已在 github 开源。我的项目地址:https://github.com/findthinks/delay-job

2 应用

2.1 服务端部署

集体测试服务器已装置 Java8+、Mysql5.7+ 环境,测试过程应用 root 账号。

2.1.1 下载 delay-job
# wget https://github.com/findthinks/delay-job/releases/download/0.6.1/delay-job-bin-0.6.1.zip
# unzip delay-job-bin-0.6.1.zip

2.1.2 建库表

提取解压文件下 docs/db/schema_init.sql,执行建库建表。

mysql> source /root/delay-job/docs/db/schema_init.sql

2.1.3 批改配置

批改数据库配置信息,本文应用与默认配置统一。

# vi /root/delay-job/config/application.yaml

2.1.4 启动服务
# cd /root/delay-job/bin
# ./startup.sh

察看 log/delay-job.log 日志信息,确认服务失常启动,胜利监听 1989(http)、1990(grpc)端口。

2.2 客户端对接

delay-job 触发告诉反对 http、grpc、kafka,本次应用 http 协定告诉。测试应用 springboot 开发了一个繁难的 http 接口,用于接受任务触发告诉。为不便,客户端、服务端部署在同一台机器。

2.2.1 启动客户端

客户端接管提早告诉的 http 接口为:http://127.0.0.1:9000/recv/notify

2.2.2 注册提早工作

手工注册一个测试工作,触发工夫点为 1678206771,工作触发信息告诉到接口 http://127.0.0.1:9000/recv/notify

curl -X 'POST' 'http://localhost:1989/api/v1/submit/job' \
  -H 'Content-Type:application/json' \
  -d'{"outJobNo":"job_no_000000000004","triggerTime":1678206771,"callbackProtocol":"HTTP","callbackEndpoint":"http://127.0.0.1:9000/recv/notify","jobInfo":"First delay job."}'

2.2.3 触发告诉

客户端工作 job_no_000000000004 在 1678206771 工夫点准时收到回调告诉。

3 总结

本文展现了如何借助 delay-job 开源我的项目,疾速实现提早调度业务,实现过程非常简单。

正文完
 0