记一次xxl-job从2.2.0升级到2.3.1

背景

由于xxl-job2.2.0版本存在漏洞,所以提出升级

升级参考文档

xxl-job gitee 官方文档:doc/XXL-JOB官方文档.md · 许雪里/xxl-job - Gitee.com

升级内容

  1. 代码升级:由于我们服务是修改了部分源码进行部署的,所以需要将xxl-job-admin服务的代码进行升级一下同时升级依赖xxl-job-core为2.3.1
  2. 依赖升级:将原先pom文件中的依赖根据最新xxl-job的依赖比对升级
  3. 数据升级:2.3.1舍弃了部分字段,增加了部分字段
  4. 配置升级:2.3.1配置部分修改了

开始升级

代码部分就不详细说了,主要是数据库和升级的功能

一、升级数据库

ALTER TABLE `xxl_job_info`
ADD COLUMN `schedule_type` varchar(50) NOT NULL DEFAULT 'NONE' COMMENT '调度类型' AFTER `alarm_email`,
ADD COLUMN `schedule_conf` varchar(128) DEFAULT NULL COMMENT '调度配置,值含义取决于调度类型' AFTER `schedule_type`,
ADD COLUMN `misfire_strategy` varchar(50) NOT NULL DEFAULT 'DO_NOTHING' COMMENT '调度过期策略' AFTER `executor_route_strategy`;


ALTER TABLE `xxl_job_log_report`
ADD COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间' AFTER `fail_count`;

ALTER TABLE `xxl_job_group`
ADD COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间' AFTER `address_list`;


UPDATE `xxl_job_info`
SET `schedule_conf` = `job_cron`;

UPDATE `xxl_job_info`SET `schedule_type` = 'CRON';



ALTER TABLE `xxl_job_info`
MODIFY COLUMN `job_cron` varchar(128) DEFAULT '' COMMENT '任务执行CRON';

二、配置升级

【优化】邮箱告警配置优化:将"spring.mail.from"与"spring.mail.username"属性拆分开,更加灵活的支持一些无密码邮箱服务;

升级中遇到的问题

一、DataTables warning: table id=job_list - Requested unknown parameter 'jobCron' for row 0, column 5. For more information about this error, please see http://datatables.net/tn/4

这个问题大概率是js缓存问题,可以刷新缓存之后从新加载

二、没有返回结果和日志加载不出来

这个问题大概率是注册服务没有升级xxl-job-core的版本,但是不会影响任务执行。

三、api改变

在升级之后,有些api不能使用,这个问题可以参考xxl-job更新日志

  • 3、【新增】新增任务辅助工具 "XxlJobHelper":提供统一任务辅助能力,包括:任务上下文信息维护获取(任务参数、任务ID、分片参数)、日志输出、任务结果设置……等;
    • 3.1、"ShardingUtil" 组件废弃:改用 "XxlJobHelper.getShardIndex()/getShardTotal();" 获取分片参数;
    • 3.2、"XxlJobLogger" 组件废弃:改用 "XxlJobHelper.log" 进行日志输出;
  • 4、【优化】任务核心类 "IJobHandler" 的 "execute" 方法取消出入参设计。改为通过 "XxlJobHelper.getJobParam" 获取任务参数并替代方法入参,通过 "XxlJobHelper.handleSuccess/handleFail" 设置任务结果并替代方法出参,示例代码如下;
@XxlJob("demoJobHandler")
public void execute() {
  String param = XxlJobHelper.getJobParam();    // 获取参数
  XxlJobHelper.handleSuccess();                 // 设置任务结果
}

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值