基本地址

测试:https://jobtest.gz.cvte.cn/xxl-job-admin
正式:https://job.gz.cvte.cn/xxl-job-admin

服务端配置同步指引

  • 测试

  • 生产

客户端升级改造

因为客户端升级改造是需要一次性全部改完的,所以单一部署工程服务的代码需全部改造完成才可以构建发布

配置添加

csb:
    job:
        accessToken: default_token # 需要添加的选项
        admin:
            addresses: http://jobtest.gz.cvte.cn/xxl-job-admin/
        executor:
            appname: scm-wip-job-uat
            ip: 
            port: 9979

版本选择,注释旧的csb-job依赖

  • spring boot 1.5.4,即用CSB2.0系列的服务
    <dependency>
    <groupId>com.cvte.csb</groupId>
    <artifactId>csb-job-v2</artifactId>
    <version>2.0.10-SNAPSHOT</version>
    </dependency>
  • spring boot 2.1.7,即用CSB3.0系列的服务
    <dependency>
    <groupId>com.cvte.csb</groupId>
    <artifactId>csb-job-v2</artifactId>
    <version>3.0.3-SNAPSHOT</version>
    </dependency>

    客户端改造说明

  • 代码改造
/**
 * @author chenjinbo
 *
 */
// 改变点1,不需要在Bean上添加@JobHandler注解
//@JobHander(value="csbJobHandler")    //与调度中心新增任务配置 JobHandler 相匹配
@Service
@Slf4j
// 改变点2,不需要继承IJobHandler
//继承 IJobHandler 重写execute方法,写自己的定时任务核心代码
//public class DemoJobHandler extends IJobHandler {
public class DemoJobHandler {
    @XxlJob("demoJobHandler")
    // 改变点3,添加@XxlJob注解,指定任务名称,方法入参通过工具类获取
    public ReturnT<String> execute() throws Exception {

        String param = XxlJobHelper.getJobParam();
        log.info("XXL-JOB, Hello World. param: {}", param);

        // 改变点4,打印日志类换XxlJobHelper
//        XxlJobLogger.log("###################CSB-JOB, Hello World.######################");
        XxlJobHelper.log("XXL-JOB, Hello World.");


        return ReturnT.SUCCESS; //成功返回SUCCESS,失败返回FAIL 给调度中心
    }

}

避坑指南

  • 阿波罗配置

    csb.job.accessToken = default_token

    新版本XXL-JOB增加了一个accessToken配置,需要确认清楚并正确配置上才能生效。

  • 依赖冲突问题
    新版本XXL-JOB核心依赖如下,目前项目升级过程可能遇到比较严重的依赖冲突有2个,升级过程建议完备测试谨慎上线:

    • slf4j-api 可能导致项目无法启动
    • netty-codec 可能在定时任务执行时报NoClassDefFoundError,可以直接使用4.1.108.Final版本

高效迁移

新版本的表结构比较简单,如果项目配置的job数量太大,可以考虑直接通过sql导入。

  • 先导入执行器,id是数据库的序列生成,并获取执行器id

    INSERT INTO xxl_job_group
    (app_name, title, address_type, address_list, update_time)
    VALUES( 'jmcw-mfg', 'MFG后台管理', 0, null, '2024-09-09 20:44:13.600');
  • 根据执行器id导入job,具体字段数据自行调整,executor_param是执行参数,trigger_status是生效状态,1代表启动

    INSERT INTO xxl_job_info
    (job_group, job_desc, add_time, update_time, author, alarm_email, schedule_type, schedule_conf, misfire_strategy, executor_route_strategy, executor_handler, executor_param, executor_block_strategy, executor_timeout, executor_fail_retry_count, glue_type, glue_source, glue_remark, glue_updatetime, child_jobid, trigger_status, trigger_last_time, trigger_next_time)
    VALUES({执行器ID}, '同步门户角色数据', '2024-09-09 09:16:49.957', '2024-09-09 09:16:49.957', 'wuhuashan', 'wuhuashan@cvte.com', 'CRON', '0 10 1 * * ?', 'DO_NOTHING', 'FIRST', 'mfgRefreshRoleJob', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2024-09-09 09:16:49.957', '', 0, 0, 0);
作者:王浩彬  创建时间:2024-09-20 11:44
最后编辑:王浩彬  更新时间:2024-12-25 11:09