v4.2.1
版本发布时间: 2023-01-15 23:27:23
PowerJob/PowerJob最新发布版本:v5.1.1(2024-12-07 22:51:38)
PowerJob 主框架
Optimization ⭐️
4.2.1 版本针对高并发场景做了大幅优化,如果您有高并发场景的使用需求,墙裂建议升级 ~
- Worker 侧新增轻量级任务模型,减少简单任务对计算资源的占用
- 轻量级任务的定义: 单机执行且不需要以固定频率或者固定延迟执行的任务
- 轻量级任务默认情况下不允许强行终止,可通过添加
-Dpowerjob.worker.allowed-force-stop-thread=true
参数开启
- 任务派发环节增加反压机制,解决在高并发场景下 Worker 出现超载宕机的问题
- 当 Worker 中已经成功接收且未结束的任务数量(包括轻量级任务 & 重量级任务)达到指定上限时(具体数量通过可通过 Worker 侧的配置
maxLightweightTaskNum
以及maxHeavyweightTaskNum
指定),将不再接收来自 Server 的调度请求,并且在上报心跳时会携带当前是否已经超载的状态 - Server 不会向已经超载的 Worker 派发任务,如果某个 app 下的所有可用 worker 都处于超载状态,则日志告警,跳过该 app 下后面所有的任务实例派发,等待下一轮派发(即延迟派发)
- 当 Worker 中已经成功接收且未结束的任务数量(包括轻量级任务 & 重量级任务)达到指定上限时(具体数量通过可通过 Worker 侧的配置
- Server 模块代码优化
- 全局使用构造注入,解决循环依赖的问题
- 优化任务实例状态检查处理逻辑,解决潜在的重复调度问题
- 优化数据表索引设计
BugFix 🐛
- 修复了并发更新导致嵌套工作流节点状态异常的 BUG #465
Compatibility 👀
- 整体与 4.1.x 版本兼容
Others ⚠️
- 请使用 4.2.1-bugfix 版本的 powerjob-worker / powerjob-worker-spring-boot-starter 依赖,修复了潜在的卡死问题