官方文档:分布式任务调度平台XXL-JOB
XXL-JOB服务端本地部署
- 下载对应版本的服务端源码(https://github.com/xuxueli/xxl-job/releases)
- 注意!下载的服务端源码版本一定要和客户端的版本对应
- 客户端的版本可以查看(lun-plus/pom.xml)
<xxl.job.version>2.4.0</xxl.job.version>
- 新建数据库
lun_job
,将脚本xxl-job\doc\db\tables_xxl_job.sql
导入到新建的lun_job
库中 - 下载下来的源码中包含了三个项目,我们只需将
xxl-job-admin
项目导入到idea - 修改配置文件
xxl-job-admin/src/main/resources/application.properties
中的数据源
### xxl-job, datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/lun_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- 右击运行
xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java
- 运行成功后在浏览器量打开http://127.0.0.1:8080/xxl-job-admin
- 以上服务端就成功运行起来了
XXL-JOB服务端生产环境部署
- 新建数据库
lun_job
,将脚本xxl-job\doc\db\tables_xxl_job.sql
导入到新建的lun_job
库中 - 修改配置文件
xxl-job-admin/src/main/resources/application.properties
中的数据源 mvn clean install
打包- 将生成的xxl-job-admin-2.4.0.jar包上传到服务器
- 启动
nohup java -Xms128m -Xmx256m -jar xxl-job-admin-2.4.0.jar >xxl-job-admin.out &
- 运行成功后在浏览器量打开http://服务器IP:8080/xxl-job-admin ,账号/密码(admin/123456)
客户端使用(可参考lun-mall-api模块)
- 文档仅用lun-mall-api模块举例,具体使用需自己开发
- 在需要定时任务的项目中添加依赖
<!--job-->
<dependency>
<groupId>com.lun</groupId>
<artifactId>lun-common-job</artifactId>
</dependency>
- nacos中给当前项目的配置文件追加如下配置
xxl:
job:
# 开关
enabled: true
admin:
# xxl_job后台访问地址
addresses: http://127.0.0.1:8080/xxl-job-admin
executor:
appname: lun-mall-api
# 单机部署多个执行器时,注意要配置不同执行器端口
port: 9998
- 编写业务代码(@XxlJob("orderCancelJobHandler"))
@XxlJob("orderCancelJobHandler")
public ReturnT<String> orderCancelJobHandler(String s) {
ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
XxlJobLogger.log("This is a demo job." + shardingVO);
return SUCCESS;
}
通过调度中心启动定时任务
- 访问调度中心(http://127.0.0.1:8080/xxl-job-admin)
- 配置“执行器管理”,注意对应nacos中的配置信息,AppName对应配置文件中的
xxl.job.executor.appname
- 配置执行器的对应“任务管理“新增任务,JobHandler对应上面任务Handler中
@XxlJob("orderCancelJobHandler")
注解的值,这里是orderCancelJobHandler