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