Releases: aizuda/snail-job
Releases · aizuda/snail-job
SnailJob 1.4.0-beta1
- sdk手动触发调用时,支持传递临时参数【优化】
- oracle sql 索引名过长 【BUG】
- 默认rpc-type: grpc【新增】
- 场景添加回调配置 【新增】
- Converter移入convert包【优化】
- 添加 @EqualsAndHashCode(callSuper=true) 去除warning 【优化】
- 消除 client-starter 依赖冲突(error_prone_annotations)【优化】
- 消除 server-starter 依赖冲突(checker-qual,error_prone_annotations)【优化】
- 优化maven结构,根pom统一管理版本【优化】
- 修复定时任务触发常驻任务时,通过任务开关无法正常关闭定时任务问题 【BUG】
- 修复了oracle数据库更新定时任务状态失败问题【BUG】
- 修复代码编辑器格式化问题【BUG】
- 修复周期性cron问题【BUG】
- 重试模块服务端重构【新增】
- sj_retry_task_0 改为 sj_retry
- sj_retry_dead_letter_0 改为 sj_retry_dead_letter
- sj_retry_task_log 改为 sj_retry_task_log
注意
本次重点重构了重试模块的流程,由之前的同步调度客户端改为异步调度客户端. 将支持更高并发的调度同时大大提高服务端的稳定性
MYSQL变更(其他DB变更请自行同步)
全量的SQL请参考项目 /doc/sql/x.sql
ALTER TABLE `sj_group_config` DROP COLUMN `bucket_index`;
ALTER TABLE `sj_job` MODIFY COLUMN `block_strategy` tinyint(4) NOT NULL DEFAULT 1 COMMENT '阻塞策略 1、丢弃 2、覆盖 3、并行 4、恢复';
ALTER TABLE `sj_retry_scene_config` ADD COLUMN `block_strategy` tinyint(4) NOT NULL DEFAULT 1 COMMENT '阻塞策略 1、丢弃 2、覆盖 3、并行' AFTER `route_key`;
ALTER TABLE `sj_retry_scene_config` ADD COLUMN `cb_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '回调状态 0、不开启 1、开启' AFTER `block_strategy`;
ALTER TABLE `sj_retry_scene_config` ADD COLUMN `cb_trigger_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1、默认等级 2、固定间隔时间 3、CRON 表达式' AFTER `cb_status`;
ALTER TABLE `sj_retry_scene_config` ADD COLUMN `cb_max_count` int(11) NOT NULL DEFAULT 16 COMMENT '回调的最大执行次数' AFTER `cb_trigger_type`;
ALTER TABLE `sj_retry_scene_config` ADD COLUMN `cb_trigger_interval` varchar(16) NOT NULL DEFAULT '' COMMENT '回调的最大执行次数' AFTER `cb_max_count`;
ALTER TABLE `sj_retry_task_log_message` DROP COLUMN `unique_id`;
ALTER TABLE `sj_retry_task_log_message` ADD COLUMN `retry_id` bigint(20) NOT NULL COMMENT '重试信息Id' AFTER `group_name`;
ALTER TABLE `sj_retry_task_log_message` ADD COLUMN `retry_task_id` bigint(20) NOT NULL COMMENT '重试任务Id' AFTER `retry_id`;
CREATE INDEX idx_namespace_id_group_name_retry_task_id ON sj_retry_task_log_message (`namespace_id`, `group_name`, `retry_task_id`);
ALTER TABLE sj_retry_task_log_message DROP INDEX idx_namespace_id_group_name_scene_name;
CREATE TABLE `sj_retry_dead_letter`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
`executor_name` varchar(512) NOT NULL DEFAULT '' COMMENT '执行器名称',
`args_str` text NOT NULL COMMENT '执行方法参数',
`ext_attrs` text NOT NULL COMMENT '扩展字段',
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
KEY `idx_idempotent_id` (`idempotent_id`),
KEY `idx_biz_no` (`biz_no`),
KEY `idx_create_dt` (`create_dt`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='死信队列表'
;
CREATE TABLE `sj_retry`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
`executor_name` varchar(512) NOT NULL DEFAULT '' COMMENT '执行器名称',
`args_str` text NOT NULL COMMENT '执行方法参数',
`ext_attrs` text NOT NULL COMMENT '扩展字段',
`next_trigger_at` bigint(13) NOT NULL COMMENT '下次触发时间',
`retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '重试次数',
`retry_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '重试状态 0、重试中 1、成功 2、最大重试次数',
`task_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '任务类型 1、重试数据 2、回调数据',
`bucket_index` int(11) NOT NULL DEFAULT 0 COMMENT 'bucket',
`parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '父节点id',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '逻辑删除',
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
KEY `idx_namespace_id_group_name_retry_status` (`namespace_id`, `group_name`, `retry_status`),
KEY `idx_idempotent_id` (`idempotent_id`),
KEY `idx_biz_no` (`biz_no`),
KEY `idx_parent_id` (`parent_id`),
KEY `idx_create_dt` (`create_dt`),
UNIQUE KEY `uk_name_task_type_idempotent_id_deleted` (`namespace_id`, `group_name`, `task_type`, `idempotent_id`, `deleted`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='重试信息表'
;
CREATE TABLE `sj_retry_task`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
`retry_id` bigint(20) NOT NULL COMMENT '重试信息Id',
`ext_attrs` text NOT NULL COMMENT '扩展字段',
`task_status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '重试状态',
`task_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '任务类型 1、重试数据 2、回调数据',
`operation_reason` tinyint(4) NOT NULL DEFAULT 0 COMMENT '操作原因',
`client_info` varchar(128) DEFAULT NULL COMMENT '客户端地址 clientId#ip:port',
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
KEY `idx_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
KEY `task_status` (`task_status`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_retry_id` (`retry_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='重试任务表'
;
DROP TABLE sj_retry_dead_letter_0;
DROP TABLE sj_retry_task_0;
DROP TABLE sj_retry_task_log;
SnailJob 1.3.0
- 新增Grpc通讯模块【新增】
- 修改服务端默认端口号为17888【优化】
- 设置客户端client为-1时,支持随机端口号【新增】
- 邮箱通知添加额外的自定义属性【新增】
- 增加删除功能OpenApi【新增】
- isRetry改为retryStatus 【优化】
- 将内置执行器移入builtin包【优化】
- 调整客户端注册逻辑;使用主节点模式对客户端进行续签【优化】
- 优化重试场景、定时任务、工作流告警通知配置【优化】
- 手动执行任务/工作流支持传入临时参数【新增】
- 定时任务新增负责人选项【新增】
- 定时任务增加执行器信息搜索条件【新增】
- 支持无客户端时告警功能【新增】
- 客户执行失败支持显示失败原因【新增】
- 新增GRPC重连事件【新增】
- 负责人支持清除【新增】
- 优化cron表达式解析错误异常信息
注意
本次新增了Grpc协议,后续计划逐渐废弃Netty请大家尽快切换
snail-job.rpc-type=grpc
MYSQL变更(其他DB变更请自行同步)
全量的SQL请参考项目 /doc/sql/x.sql
ALTER TABLE `sj_notify_config`
ADD COLUMN `notify_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '通知名称',
DROP COLUMN `business_id`;
ALTER TABLE `sj_job`
ADD COLUMN `notify_ids` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表',
ADD COLUMN `owner_id` bigint(20) NULL COMMENT '负责人id';
ALTER TABLE `sj_retry_scene_config`
ADD COLUMN `notify_ids` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表';
ALTER TABLE `sj_workflow`
ADD COLUMN `notify_ids` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表';
SnailJob 1.3.0-beta2
- 修复retryStatus为NULL问题
- 优化cron表达式解析错误异常信息
- 修复https://gitee.com/aizuda/snail-job/issues/IBHA4U
SnailJob 1.3.0-beta1.1
- 静态分片参数 taskBatchId 没有设置【BUG】
- 修复job、工作流notify和场景的notifyIds为null序列化问题【BUG】
- 修复定时任务普通用户添加定时任务无权限问题【BUG】
- 修复重试场景重试数量超过阈值定时任务告警空指针异常【BUG】
- 修复上下文值为null 合并异常问题 【BUG】
- 新增GRPC重连事件【新增】
- 负责人支持清除【新增】
SnailJob 1.3.0-beta1
- 新增Grpc通讯模块【新增】
- 修改服务端默认端口号为17888【优化】
- 设置客户端client为-1时,支持随机端口号【新增】
- 邮箱通知添加额外的自定义属性【新增】
- 增加删除功能OpenApi【新增】
- isRetry改为retryStatus 【优化】
- 将内置执行器移入builtin包【优化】
- 调整客户端注册逻辑;使用主节点模式对客户端进行续签【优化】
- 优化重试场景、定时任务、工作流告警通知配置【优化】
- 手动执行任务/工作流支持传入临时参数【新增】
- 定时任务新增负责人选项【新增】
- 定时任务增加执行器信息搜索条件【新增】
- 支持无客户端时告警功能【新增】
- 客户执行失败支持显示失败原因新增】
注意
本次新增了Grpc协议,后续计划逐渐废弃Netty请大家尽快切换
snail-job.rpc-type=grpc
MYSQL变更(其他DB变更请自行同步)
全量的SQL请参考项目 /doc/sql/x.sql
ALTER TABLE `sj_notify_config`
ADD COLUMN `notify_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '通知名称',
DROP COLUMN `business_id`;
ALTER TABLE `sj_job`
ADD COLUMN `notify_ids` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表',
ADD COLUMN `owner_id` bigint(20) NULL COMMENT '负责人id';
ALTER TABLE `sj_retry_scene_config`
ADD COLUMN `notify_ids` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表';
ALTER TABLE `sj_workflow`
ADD COLUMN `notify_ids` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表';
SnailJob 1.2.0
本次升级为1.2.0正式版本包含(1.2.0-beta1,1.2.0-beta2)
- 定时、重试任务清除时间一小时改为四小时【优化】
- 修复日志清除BUG【BUG】
- 信创arm环境下Docker官方镜像无法运行的问题【BUG】
- 升级依赖包消除 CVE【优化】
- 修复工作流编排下的http内置执行器在请求头中透传上下文中value包含中文问题【BUG】
- 客户端日志上报组件 org.apache.log4j.MDC修改为org.slf4j.MDC 【优化】
SnailJob 1.2.0-beta2
- 新增OpenApi功能【新增】
- 修复Sharding和Map方法修饰符错误【BUG】
- 内置脚本执行器支持自定义编码;【优化】
- 内置http执行器支持工作流任务在请求头中透传工作流上下文内容【优化】
- 定时任务使用恢复阻塞策略时,只重新调用不成功的任务【优化】
- 修复MapReduce模式Reduce、MergeReduce阶段异常更新工作流上下文 【BUG】
- 去除工作流节点stop相关重复代码【优化】
- 修复日志清除BUG【BUG】
- 修复服务端生成channel并发问题【BUG】
- 修复客户端分片参数为ShardingJobArgs时不生效问题【BUG】
- 按 pgsql 数据库补齐 大金 Mapper.xml【BUG】
- 删除日志的全局开关【优化】
- 修复oracle任务状态变更偶发失败情况【优化】
- 升级MP版本3.5.8【优化】
- 修复客户端获取线程时的并发问题【BUG】
- 添加snail-job的window启动脚本.【新增】
- 添加snail-job启动Shell脚本【新增】
- 批次状态查询支持多选【新增】
SnailJob 1.2.0-beta1.1
- 修复并行度大于1时,map任务执行失败问题
- 修复前端回显问题
SnailJob 1.2.0-beta1
- 新增人大金仓数据库【新增】
- 优化mybatis xml的加载顺序, 支持多个id同时加载【优化】
- docker-compose.yaml 更新达梦镜像【优化】
- 增加工作流决策节点模拟上下文校验结果返回【新增】
- 优化json转换失败的日志【优化】
- 增加第一个及最后一个客户端路由功能【新增】
- 增加路由缓存定期清理功能【新增】
- 修复Map任务问题不能重试【BUG】
- PaginationInnerInterceptor不制定 dbType,由 mp 自动管理,解决 Oracle 11g分页兼容问题。【优化】
- 去除动态tablePrefix配置【优化】
- 修复Map/MapReduce重试问题,及手动暂停相关逻辑【BUG】
- 新增CMD、PowerShell、Shell、Http相关执行器【新增】
- 修复oracle任务状态变更偶发失败情况【BUG】
- 重构结果处理逻辑【优化】
- 去除定时任务结果更新的分布式锁【优化】
- map和map reduce支持配置参数全路径传递【新增】
- 优化客户端线程池,当获取缓存线程池时才设置并行度【优化】
- 添加任务执行时间【新增】
SnailJob 1.1.2
- 修复Oracel问题(issues/IAJRQW)
- 修复SpringContext=>SnailSpringContext(issues/IAJKDH)