wed-job - 分布式调度框架 TBSchedule 3.2.18重置版


Apache-2.0
跨平台
Java

软件简介

wed-job

tbschedule-wed 正式更名为 wed-job 并发布第一个正式版

Gitter

基于 TBSchedule 官方 3.2.18 的重置版。TBSchedule 具有框架轻、零入侵、效率高(高过 elastic-job 和 xxl-
job)等诸多特点,无奈官方于 3.3.3.2 版本后停止了升级与 BUG 修复。如此好的分布式任务调度框架弃之可惜,所以就让作者来捡个便宜吧。

重置版主要在官方原版的基础上优化了以下几点:

  1. 任务项状态管理全部改为顺序操作,牺牲一定的并发效能提升稳定性
  2. 解决在以往的实践使用中(大量 job 共用一个调度中心切 job 执行频繁场景)官方版偶尔出现任务不能正确停止与注销,造成任务项死循环执行,CPU 满负载且产生大量脏日志的问题;
  3. 优化在 ZooKeeper 集群不稳定时,策略与任务的注册与反注册

用户手册

基础用法与官方版一致,新手可以参考:https://my.oschina.net/wednesday/

构建

git clone https://github.com/hungki/wed-job
mvn clean package

RELEASE NOTE

Jul 17 2019-1.0.1_RELEASE

  1. maven坐标变更


    com.wednesday
    wed-job
    1.0.1

  2. 修复因使用 Timer 类自身误差 BUG 在高频 SLEEP 模式下调用任务,当误差时间累积超过 SLEEP 时间时任务变成无限执行的问题(使用的 ScheduledThreadPoolExecutord 代替);

  3. 将原生 ZooKeeper api 替换为 CuratorFramework 以修复因官方最后版本 zk 重连机制不健全引起的任务执行 server 假死无任何日志输出的问题;

Feb 28 2019-1.0.1_GA:

  1. 修复 Sleep 时间短(ex:500ms)下,使用 Timer 类 BUG 导致 Task 停摆的问题
  2. 使用 CuratorFramework 代替官方 ZooKeeper API 已获得更好的链接稳定性已经重连机制
  3. 更新 Java 支持到[1.7,1.8)
  4. 整理项目结构

Nov 5 2018-1.0.0:

  1. job 实现器追加 pageNum 参数(根据 eachFetchDataNum 和 FetchCount 计算得出)
  2. 修订文档
  3. 变更软件名及版本号

TODO

  1. add:新版 Console
  2. fix:彻底修复高频词运行下任务假死的问题
  3. feature:提供数据库注册中心的并行版本,可视化更强,效率会比目前版本低一些但是能避免ZooKeeper对网络的高依赖,性能与稳定的平衡交给用户选择。
  4. feature:提供便捷的子任务功能,目前版本子任务需要大量代码实现且不具备可视化能力,但是没有任务编排怎么又好意思成为一个完整的任务调度中心呢?