PowerJob Versions Save

Enterprise job scheduling middleware with distributed computing ability.

v4.3.1

1 year ago

PowerJob 主框架

Features 🚀

  • 【新功能】支持新的调度策略:DailyTimeInterval(每日固定间隔)#558
  • 【新功能】支持任务的导出导入,再也不用担心跨环境任务配置同步啦 #571
  • 【新功能】支持新的日志类型:LOCAL_AND_ONLINE #553
  • 【新功能】处理器信息除了全限定类名,额外支持 SpringBeanName 配置,可参考示例 tech.powerjob.samples.tester.TestFindByBeanNameProcessor
  • 【兼容性】powerjob-worker-spring-boot-starter 适配 SpringBoot3 By@dudiao

BugFix 🐛

  • 修复了 HTTP 协议在多语言环境下的兼容性问题 By@dudiao
  • 修复了高版本 SpringBoot 与 swagger-ui 不兼容的问题 #559

Compatibility 👀

  • 与上个版本完全兼容,即整体与 4.2.x、4.3.x 版本兼容

Others ⚠️

  • 请使用 AKKA 协议的用户尽快升级到 4.3.1-bugfix 版本(回滚 AKKA 版本 2.6.20 -> 2.6.13,高版本疑似存在重新建连后无法通讯的 BUG)
  • 或选择更换为 HTTP 协议

v4.3.0

1 year ago

🏮PowerJob 全体成员祝大家兔年吉祥,新的一年身体健康,万事如意,阖家欢乐,幸福安康!🏮

PowerJob 主框架

Features 🚀

4.3.0 版本重新设计了 PowerJob 的内部通讯层,现已与任何具体实现解耦~

  • 抽象网络框架层 powerjob-remote-framework,提供 AKKA(前序版本的通讯协议)和 HTTP 两种官方默认实现,并允许用户扩展自己的通讯协议 #520
    • powerjob-server:4.3.0及以上的 powerjob-server 将内部通讯协议从 AKKA 切到了 HTTP,从低版本升级而来的用户务必确认以下几点:
      • 如果愿意使用 HTTP 协议(推荐),请务必确保 server 的 HTTP 内部通讯端口(默认 oms.http.port=10010)处于 OPEN 状态
      • 如果仍然想用 AKKA 协议或者其他自定义协议,可通过配置参数 oms.transporter.main.protocol 指定
    • powerjob-worker:考虑到兼容性仍然默认使用 AKKA,如果想切换协议,可通过配置文件属性 protocol 指定
  • 抽象处理器工厂 ProcessorFactory,允许用户自定义处理器加载逻辑以支持各种自定义扩展(应用场景:quarks 等官方不支持的 IOC 框架、函数等微服务等) #508
  • 支持通过启动参数 -Dpowerjob.worker.workspace= 自定义 worker 工作目录 #521

BugFix 🐛

  • 修复了 4.2.1 版本轻量级任务模型在参数异常情况下卡住的问题

Compatibility 👀

  • 整体与 4.2.x 版本兼容,即 4.2.x 的 server 可以调度 4.3.x 的 worker, 4.3.x 的 server 也可以调度 4.2.x 的 worker

v4.2.1

1 year ago

PowerJob 主框架

Optimization ⭐️

4.2.1 版本针对高并发场景做了大幅优化,如果您有高并发场景的使用需求,墙裂建议升级 ~

  • Worker 侧新增轻量级任务模型,减少简单任务对计算资源的占用
    • 轻量级任务的定义: 单机执行且不需要以固定频率或者固定延迟执行的任务
    • 轻量级任务默认情况下不允许强行终止,可通过添加 -Dpowerjob.worker.allowed-force-stop-thread=true 参数开启
  • 任务派发环节增加反压机制,解决在高并发场景下 Worker 出现超载宕机的问题
    • 当 Worker 中已经成功接收且未结束的任务数量(包括轻量级任务 & 重量级任务)达到指定上限时(具体数量通过可通过 Worker 侧的配置 maxLightweightTaskNum 以及 maxHeavyweightTaskNum 指定),将不再接收来自 Server 的调度请求,并且在上报心跳时会携带当前是否已经超载的状态
    • Server 不会向已经超载的 Worker 派发任务,如果某个 app 下的所有可用 worker 都处于超载状态,则日志告警,跳过该 app 下后面所有的任务实例派发,等待下一轮派发(即延迟派发)
  • Server 模块代码优化
    • 全局使用构造注入,解决循环依赖的问题
    • 优化任务实例状态检查处理逻辑,解决潜在的重复调度问题
  • 优化数据表索引设计

BugFix 🐛

  • 修复了并发更新导致嵌套工作流节点状态异常的 BUG #465

Compatibility 👀

  • 整体与 4.1.x 版本兼容

Others ⚠️

  • 请使用 4.2.1-bugfix 版本的 powerjob-worker / powerjob-worker-spring-boot-starter 依赖,修复了潜在的卡死问题

v4.2.0

1 year ago

PowerJob 主框架

Features 🚀

  • 支持动态日志,可使用控制台配置调整 Job 使用的 Logger 及 LogLevel。
    • 支持 SERVER(服务端日志,默认)、LOCAL(本地日志)、STDOUT(系统输出)、NULL(空实现)4种 LogType
    • 支持 DEBUG、INFO、WARN、ERROR、OFF 5种级别控制
    • 使用建议:初期调试可使用 SERVER 日志,后续功能稳定后改为 LOCAL,并调高日志级别,降低通讯压力,消除性能瓶颈问题
  • 支持任务标记(Job#tag),可用于自定义任务归类和二次开发 #358
  • 支持健康度优先(默认)和随机派发2种任务派发机制 #461
  • 常规升级,更新 Spring 等依赖版本

BugFix 🐛

  • 修复了新版本控制台无法直接启用/关闭任务的 BUG #455
  • 修复了 JDK17 下存在的部分兼容性问题 #457

Compatibility 👀

  • 整体与 4.1.x 版本兼容
  • powerjob-server 在 4.1.x 的基础上,数据库 job_info 表新增 tag、log_config 字段

PowerJob 官方处理器

点击查看使用教程

Features 🚀

  • 新发布:动态配置处理器(利用广播任务下发控制台配置到每一台 worker,可作为简易配置中心使用):tech.powerjob.official.processors.impl.ConfigProcessor
  • 新改动:支持 CMD 和 PowerShell 脚本处理器

v4.1.1

1 year ago

PowerJob-Framework

Features 🚀

  • Support Event and Monitor functions for subsequent monitoring. #432
  • Support for declaring whether or not powerjob-worker is enabled via powerjob.worker.enabled. #356
  • Support docker-compose.

Optimization ⭐️

  • Optimize server memory usage. #397
  • Optimize server log processor(use asynchronous mode and discard unprocessable tasks).
  • Upgrade unit test framework and some dependencies.

BugFix 🐛

  • Fix the issue that the random dispatch policy is invalid when Job specifies the number of workers. #449
  • Fix the issue that cluster limits are invalid in Map/MapReduce execution mode. #450

Compatibility 👀

The released version is compatible with 4.1.0

v4.1.0

1 year ago

PowerJob-Framework

Features 🚀

  • Support nested nodes and decision nodes in workflow. #188 #266, How to use ? -> wiki
  • Support tags for PowerJob-worker starter.
  • Support configurable alarm for frequent jobs. #370
  • Support lifecycle monitoring of job instances. #208

Optimization ⭐️

  • Optimize Akka configuration.
  • Optimize concurrency control of job instances.
  • Optimize context injection in workflow. #307
  • Replace with CompatibleFieldSerializer as the default kyro serializer to improve compatibility.
  • Support manually delivering instanceParams in PowerJob-console. #381
  • Replace cron implementation. #382
  • Upgrade fastjson version to 1.2.83, MySQL JDBC driver version to 8.0.28.

BugFix 🐛

  • Fix the issue that OpenApi cannot cancel job instance. #324
  • Fix the issue that NetUtils cannot get the correct IP address of first network card. #345
  • Fix the possible exception when Map Processor handles large amount of tasks. #355
  • Fix the issue in workflow that one-time Cron task cannot terminate correctly. #316
  • Fix the issue that frequent tasks run repeatedly. #375
  • Fix the issue of abnormal state transferring of job instances. #404

Compatibility 👀

The released version is compatible with 4.0.X, please run the database script as instructed.

PowerJob-OfficialProcessor

  • Add InjectWorkflowContextProcessor, How to use ? -> wiki

v4.0.1

3 years ago

PowerJob-Framework

Features 🚀

  • support PostgreSQL database (need to add config spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.dialect.PowerJobPGDialect in application.properties) #153
  • upgrade guava version to improve security #CVE-2020-8908
  • enhance front-end console which can displays more worker cluster information now, including tag, last active time, etc.

BugFix 🐛

  • fix the bug of server election #246
  • fix database table builder sql error #247
  • fix a NPE problem that occurs when no worker connects to the server #244
  • fix the bug of front-end error displaying worker cluster #245

v4.0.0

3 years ago

PowerJob 主框架

版本代号:Marineford

Features 🚀

  • 支持任务复制、工作流复制,提升配置效率
  • 支持同一AppName下的执行器动态分组 #226
  • 支持单应用下启动多个 powerjob-worker #194 #217
  • 使用 kryo 替换 jackson-cbor 作为默认的序列化框架,提升通讯性能的同时降低依赖冲突的可能性
  • 工作流能力基础升级,支持任务重复导入、参数个性化、节点禁用、失败跳过 #170
  • 工作流能力运维能力升级,支持节点标记成功、原地重试 #172 #186
  • 工作流配置界面升级,使用 AntV-G6 重写工作流画布组件,并抽取为单独模块 power-workflow #171

BugFix 🐛

  • 修复了当数据库主键自增不规律时 server 无法启动的问题 #220

Compatibility 👀

PowerJob 4.x 是框架向新时代和新目标迈进的一个版本,因此做了大幅度的改动。同时由于一些功能上的升级与变更,框架不得不产生一些 broken change。不过不用担心,我们提供了一系列方案帮助您完成升级。

Acknowledgements 🎉

真的非常感谢大家的辛勤付出~

PowerJob 官方处理器

点击查看使用教程

Features 🚀

  • 新发布:Spring 数据源 SQL 处理器
  • 新发布:Dynamic 数据源 SQL 处理器
  • 新改动:Http Processor 新增状态码判断 #223

v3.4.8

3 years ago

There is a 99.99% chance that this will be the last version of PowerJob v3.x. Enjoy this stable version and look forward to the upcoming, incredibly powerful v4.x release~🎉🎉🎉

PowerJob-Framework

Features 🚀

  • support dynamic setting of binding IP according to JVM startup parameters(-Dpowerjob.network.local.address) #227

PowerJob-OfficialProcessor

How to use? -> wiki

Bugfix 🐛

  • fixed the problem that the official processor could not be used due to packaging failure

v3.4.7

3 years ago

PowerJob-Framework

Features 🚀

  • Deprecated build-in ShellProcessor(com.github.kfcfans.powerjob.worker.core.processor.built.ShellProcessor), please use the official processor instead. (click for more detail)
  • Deprecated build-in PythonProcessor(com.github.kfcfans.powerjob.worker.core.processor.built.PythonProcessor), please use the official processor instead. (click for more detail)

BugFix 🐛

  • fix the bug that the script processor does not work properly #222

PowerJob-OfficialProcessor

How to use? -> wiki

Features 🚀