一、xxl-job简介
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并()接入多家公司线上产品线,开箱即用。具体文档资料参考官方文档。
二、背景
笔者之前使用的是v2.0.2版本,因需要权限管理等功能,决定将版本升级到v2.1.2。该版本自研调度组件,移除quartz依赖,且将DB脚本默认编码改为utf8mb4等,是一次非常大的版本更新。
三、升级步骤
v2.1.2 较之低版本,最大的区别在于数据库表结构方面,因此升级步骤重点在于数据的迁移:
1.初始化数据库
使用 v2.1.2 版本提供的建表SQL,初始化一套新的数据库。
如果选择mysql,建议使用5.7以上版本。5.6以下版本在初始化时可能会报“ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes”,是因为xxl_job_registry
的KEY i_g_k_v
超出索引字节的限制。
mysql5.6以下版本想正常初始化必须满足下面3个条件:
系统变量innodb_large_prefix为ON
系统变量innodb_file_format为Barracuda
ROW_FORMAT为DYNAMIC或COMPRESSED
2.数据迁移
将旧数据迁移到新数据库中,对比表结构