系统中未用到xxl-job,并非JooLun源码部分,只对其做了支持,仅供学习
官方文档:http://www.xuxueli.com/xxl-job/
XXL-JOB服务端本地部署
- 下载对应版本的服务端源码(https://github.com/xuxueli/xxl-job/releases)
- 注意!下载的服务端源码版本一定要和客户端的版本对应
- 客户端的版本可以查看(joolun-plus/pom.xml)
<xxl.job.version>2.4.0</xxl.job.version>
- 新建数据库
joolun_job,将脚本xxl-job\doc\db\tables_xxl_job.sql导入到新建的joolun_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/joolun_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服务端生产环境部署
- 新建数据库
joolun_job,将脚本xxl-job\doc\db\tables_xxl_job.sql导入到新建的joolun_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)
客户端使用(可参考joolun-mall-api模块)
- 文档仅用joolun-mall-api模块举例,具体使用需自己开发
- 在需要定时任务的项目中添加依赖
<!--job-->
<dependency>
<groupId>com.joolun</groupId>
<artifactId>joolun-common-job</artifactId>
</dependency>
- nacos中给当前项目的配置文件追加如下配置
xxl:
job:
# 开关
enabled: true
admin:
# xxl_job后台访问地址
addresses: http://127.0.0.1:8080/xxl-job-admin
executor:
appname: joolun-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;
}
通过调度中心启动定时任务
-
配置“执行器管理”,注意对应nacos中的配置信息,AppName对应上面nacos配置文件中的
xxl.job.executor.appname
-
配置执行器的对应“任务管理“新增任务,JobHandler对应上面任务Handler中
@XxlJob("orderCancelJobHandler")注解的值,这里是orderCancelJobHandler
