SnailJob 1.6.0-beta1 正式发布了, 体验再次升级

Viewed 75

重试机制增强

  1. 支持 retryIfResult:根据方法返回结果判断是否重试
  2. 支持自定义返回值与异常处理(当配置为isThrowException=false时支持MethodResult
  3. 支持多个参数序列化器同时使用
  4. 新增Fury序列化工具(Fury Serializer)
  5. 增加任务标签字段
  6. 新增负责人配置

定时任务增强

  1. 支持任务指定时间点触发(时间点调度)
  2. 增加定时任务标签字段
  3. JAVA SDK 支持标签和时间点执行
  4. 新增执行器同步服务端功能,新增时任务可直接选择执行器
  5. 优化 doMap 注释与异常处理逻辑

工作流能力增强

  1. 支持任务指定时间点触发(时间点调度)
  2. 增加负责人配置

客户端能力增强

  1. 客户端注册支持展示系统版本和客户端类型(JAVA、GO、PYTHON)
  2. 客户端新增标签配置
  3. 客户端支持动态上下线能力
  4. 支持在线编辑、删除、更新标签能力
  5. 优化使用无锁化优化滑动窗口性能及稳定性

其他

  1. 优化实例管理(节点注册、探活、故障转移、下线、节点过滤等)

问题修复

  • 修复重试幂等 ID 重复问题(SimpleIdempotentIdGenerate

标签配置: https://snailjob.opensnail.com/docs/guide/client/java/client.html
MYSQL变更(其他DB变更请自行同步)

全量的SQL请参考项目 /doc/sql/x.sql

alter table sj_job
   add labels varchar(512) default '' null comment '标签';

CREATE TABLE `sj_job_executor`
(
   `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 '组名称',
   `executor_info` varchar(256)        NOT NULL COMMENT '任务执行器名称',
   `executor_type` varchar(3)          NOT NULL COMMENT '1:java 2:python 3:go',
   `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` (`namespace_id`, `group_name`),
   KEY `idx_create_dt` (`create_dt`)
) ENGINE = InnoDB
  AUTO_INCREMENT = 0
  DEFAULT CHARSET = utf8mb4 COMMENT ='任务执行器信息';

alter table sj_retry
   add serializer_name varchar(32) default 'jackson' not null comment '执行方法参数序列化器名称';

alter table sj_retry_dead_letter
   add serializer_name varchar(32) default 'jackson' not null comment '执行方法参数序列化器名称';

alter table sj_retry_scene_config
   add owner_id bigint                  null comment '负责人id',
   add labels   varchar(512) default '' null comment '标签'
;

drop table sj_sequence_alloc;

alter table sj_server_node
   add labels varchar(512) default '' null comment '标签';

alter table sj_workflow
   add owner_id bigint null comment '负责人id';


4 Answers

哇哦,这次更新实现了质的飞跃

终于等到了大佬的 “客户端支持动态上下线能力”,可以把我自己的拙劣实现删除了。赞赞赞

大佬,客户端服务停止版本更新,有办法服务端实时感知客户端下线?我之前自己实现的offline功能,客户端停止的时候发送下线请求给服务端,并删除缓存及DB的示例,这种实现是否可行?

如何从1.5.0 升级到该版本?