1.说明
之前的定时任务不适合容器化部署的情况,现在JOB进行了升级,支持容器化部署。
2. 升级步骤
2.1 job 代码位置发生了变化
之前的job代码放到了jpaas-service 下面。
2.2 数据库升级
除了执行之前的代码,如果要升级,需要执行如下脚本
ALTER TABLE xxl_job_group ADD COLUMN update_time datetime COMMENT '更新时间';
ALTER TABLE xxl_job_info ADD COLUMN schedule_type varchar(64) COMMENT '调度类型';
ALTER TABLE xxl_job_info ADD COLUMN schedule_conf varchar(128) COMMENT '调度配置,值含义取决于调度类型';
ALTER TABLE xxl_job_info ADD COLUMN misfire_strategy varchar(64) COMMENT '调度过期策略';
ALTER TABLE xxl_job_info drop job_cron;
2.3 执行器包修改
引入下面的包
<dependency>
<groupId>com.redxun</groupId>
<artifactId>jpaas-job-spring-boot-starter</artifactId>
<version>${jpaas.common.version}</version>
</dependency>
去掉job-core
<dependency>
<groupId>com.redxun</groupId>
<artifactId>job-core</artifactId>
<version>1.1.2.RELEASE</version>
</dependency>
2.4 执行器配置修改
xxl-job:
enabled: ${job.bpm}
# 模式固定为 nacos
mode: nacos
admin:
admin-addresses: ${job.center}
executor:
app-name: bpm-job #默认为 xxl-job-executor
# 增加address
address: ${spring.application.name}
access-token: #默认为空
log-path: logs/applogs/xxl-job/jobhandler #默认为 logs/applogs/xxl-job/jobhandler
log-retention-days: 10 #默认为 10
ip: #默认为空
port: 7676 #默认为 9999
这里增加两个配置
mode: nacos
address: ${spring.application.name}
2.5 修改执行器相关代码
增加 “/executor/**”
需要使用定时的代码,都修改下 ClientWebsecurityConfigurer.java
2.6 job 实现类的修改
这里JobHandler 实现接口发生了变化,需要根据下面的示例进行修改。
@Component
public class DemoJobHandler extends IJobHandler {
@Override
@XxlJob("demoJobHandler")
public void execute() throws Exception {
//获取job配置的参数
//XxlJobHelper.getJobParam();
// 失败时执行如下代码
// XxlJobHelper.handleFail();
System.err.println("demoJobHandler");
// 任务执行成功时执行如下代码
XxlJobHelper.handleSuccess();
}
}
文档更新时间: 2022-06-06 16:57 作者:zyg