242 Star 2.2K Fork 754

GVP假诗人 / PowerJob

2024-03-02 19:50
647525 kfcfans 1589424914 假诗人

PowerJob 主框架

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

Features 🚀

  • Map/MapReduce增强
    • 性能优化:底层执行架构升级,通过 SWAP 置换支持千万/亿级子任务
    • 策略优化:支持 TaskTracker 行为配置(任务配置-高级设置-TaskTracker 行为),新增主节点 PADDLING(划水)模式。启用后主节点只负责管理,不参与计算,稳定性最优。适用于节点数量非常多的大规模计算场景,少一个计算节点来换取稳定性提升。
  • 运维增强:Map/MapReduce 类任务开放子任务查询功能,清晰追踪集群计算动态
  • 调度策略增强:新增指定主节点(SPECIFY)模式。常用于 Map/MapReduce 等场景,大规模计算时,主节点部署/重启会导致任务完全失败,因此可为主节点搭建一个隔离环境,通过该参数指定主节点到该隔离环境运行,使其摆脱普通 worker 节点部署带来的影响。指定语法等同于“执行机器地址”的语法,填写 IP 或者 TAG。

Bugfix 🐛

  • fix: 跨版本的 http 协议序列化兼容性问题(低版本可通过单独升级 powerjob-remote-impl-http 依赖到最新版本解决)

Compatibility 👀

  • powerjob-server 在前序版本的基础上,数据库 job_info 表新增 dispatch_strategy_configadvanced_runtime_config 字段
  • 与上个版本完全兼容,即整体与 4.2.x、4.3.x 版本兼容(使用了 HTTP 协议需要升级 powerjob-remote-impl-http 以修复序列化 BUG)
最后提交信息为: Merge branch '4.3.8_zjlab_v2'
预览版本
2024-02-19 21:12
647525 kfcfans 1589424914 假诗人

PowerJob 主框架

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


此版本引入了用户与权限体系,虽说核心功能无任何变化,仅在管理端上层做了增强,但可能还是会对一些已经接入使用的用户产生一定的影响,也可能出现一些官方未及时评估到的兼容性问题。
因此 5.0.0 版本暂时以 BETA 版本的形式亮相,希望大家做到:

  • 新用户鼓励积极尝试,做好充分的测试验证后再上生产环境。
  • 老用户可阅读相关功能说明文档和迁移指南,如有条件可在不是那么核心的场景尝试升级,任何问题及时反馈到 ISSUE,避免后续版本固化后出现无法平滑升级的情况。
  • BETA 期间,欢迎任何用户积极反馈问题,想法。PowerJob 致力于雕琢最极致的功能。

Features 🚀

  • 正式支持用户权限体系(字越少事越大系列) 详见 LINK

Compatibility 👀

5.x 版本的核心改动为引入了用户账号体系与权限体系,主要在 server 端,worker 部分兼容(即 powerjob-worker 5.x 与 4.x 行为一致,均可被 5.x 版本的 server 调度),因此升级成本相对较低。

  • powerjob-server:详见 LINK
  • powerjob-worker:4.x 与 5.x 兼容,5.x 的 server 可调度 4.x 的worker。4.x 的 server 也可调度 5.x 的 worker。
2024-02-11 09:57
647525 kfcfans 1589424914 假诗人

PowerJob 主框架

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

Features 🚀

  • 网络库增强:worker 启动时自动获取可与 server 通讯的 IP,大幅降低绑错网卡导致无法通讯问题出现概率 #762
  • 基础类库升级:h2、logback、Spring 等核心组件依赖版本升级,解决潜在的漏洞安全问题
  • 性能优化:Map 任务丢弃无效结果,优化大规模集群计算时 TaskTracker 节点性能
  • 基础优化:日志优化,不合理日志 Level 调整 & 新增慢查询等关键日志,辅助排查稳定性问题 #657

Bugfix 🐛

  • fix: 修复使用mysql存储日志的情况下文件流未关闭造成的文件文件句柄不释放的bug。 by @神雕大叔 in https://github.com/PowerJob/PowerJob/pull/807
  • fix: 修复 email未填写导致告警报异常, #808 by @Nori in https://github.com/PowerJob/PowerJob/pull/810
  • fix: 修复了潜在异常导致调度任务非预期退出的问题(稳定性增强 by @dudiaohanjiangxue
  • fix: 修复了 server 集群部署时查看任务实例详细信息有概率无法正常显示的问题
  • fix: 修复了存在自定义方法注解时, @PowerJobHandler 不生效导致无法找到处理器的问题 #770
  • fix: 修复了 server 状态检查任务异常时循环刷日志打爆磁盘的问题 #769

Compatibility 👀

  • 与上个版本完全兼容,即整体与 4.2.x、4.3.x 版本兼容
最后提交信息为: Merge branch '4.3.7_v2'
2023-09-03 14:25
647525 kfcfans 1589424914 假诗人

PowerJob 主框架

Features 🚀

  • 存储服务新增 minio 支持,感谢贡献者 @工藤新一
  • worker 支持延迟连接 server 特性 #725 ,相关的配置参数变更如下:
    • PowerJobWorkerConfig: enableTestMode -> allowLazyConnectServer
    • SpingBoot Properties: powerjob.worker.enable-test-mode -> powerjob.worker.allow-lazy-connect-server

Bugfix 🐛

  • 挂载无限容量存储时磁盘指标溢出导致 worker 无法被调度 #720 感谢贡献者 @三尺微命
  • 修复了脚本处理器拷贝输出日志报错的问题(使用上无实际影响) #682 By @dudiaohanjiangxue

Compatibility 👀

  • 与上个版本完全兼容,即整体与 4.2.x、4.3.x 版本兼容
最后提交信息为: Merge branch '4.3.6'
2023-08-15 00:27
647525 kfcfans 1589424914 假诗人

PowerJob 主框架

Features 🚀

  • 支持非局域网部署,可通过powerjob.network.external.addresspowerjob.network.external.port绑定外部实际通讯地址,解决NAT 等绑定地址与暴露地址不一致场景的使用问题 #502 #579
  • 抽象远程文件系统存储服务,自带支持 MongoDB、AliyunOSS、MySql类DB三种实现,同时允许开发者轻松扩展自定义实现 #130 #706

Optimization ⭐️

  • 优化了在线日志回显的高延迟问题
  • 优化了 HTTP 协议异常日志输出问题
  • 优化了网络地址库IP获取逻辑 @JiaWei

Bugfix 🐛

  • 修复了超时控制失败的问题 #678
  • 修复了报警人无法清空的问题 #676 @archibald-nice

Compatibility 👀

  • 与上个版本完全兼容,即整体与 4.2.x、4.3.x 版本兼容
最后提交信息为: Merge branch '4.3.5'
2023-08-13 23:39
647525 kfcfans 1589424914 假诗人

PowerJob 官方处理器

点击查看使用教程

Features 🚀

  • 新发布:万能验证处理器,帮助新用户快速熟悉&了解&测试 PowerJob 相关功能:tech.powerjob.official.processors.impl.VerificationProcessor
最后提交信息为: Merge branch '4.3.4'
2023-06-11 17:46
647525 kfcfans 1589424914 假诗人

PowerJob 主框架

Features 🚀

  • 支持 Spring 方法级别处理器,详细用法可参考官方文档或 #610 感谢贡献者 @vannewang
  • 支持 powerjob-server FatJar 模式被集成 GITEE#I6H8JF

BugFix 🐛

  • 修复了极端情况下几乎0耗时任务执行结果无法回传的问题 #620

Compatibility 👀

  • 与上个版本完全兼容,即整体与 4.2.x、4.3.x 版本兼容
最后提交信息为: Merge branch '4.3.3'
2023-03-19 23:38
647525 kfcfans 1589424914 假诗人

PowerJob 主框架

BugFix 🐛

  • 修复了工作流直接追加 String 内容时新增引号的问题 #307
  • 修复了表前缀配置oms.table-prefix无法正常工作的问题 #584
  • 修复了测试模式 powerjob.worker.enable-test-mode 开启后不连接 server 依旧无法启动的问题 #580
  • 修复了 netty 高级特性开启失败情况下阻塞整体启动的问题 #591

Compatibility 👀

  • 与上个版本完全兼容,即整体与 4.2.x、4.3.x 版本兼容
最后提交信息为: Merge branch '4.3.2-main'
2023-03-07 00:47
647525 kfcfans 1589424914 假诗人

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

Compatibility 👀

  • 与上个版本完全兼容,即整体与 4.2.x、4.3.x 版本兼容
最后提交信息为: Merge branch '4.3.1-main'
2023-01-28 13:29
647525 kfcfans 1589424914 假诗人

🏮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
最后提交信息为: Merge branch '4.3.0'
2023-01-16 00:18
647525 kfcfans 1589424914 假诗人

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 版本兼容
2022-10-03 16:25
647525 kfcfans 1589424914 假诗人

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 脚本处理器
最后提交信息为: Merge branch 'v4.2.0'
2022-09-16 23:03
647525 kfcfans 1589424914 假诗人

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
最后提交信息为: chore: update console resources
2021-04-05 17:15
647525 kfcfans 1589424914 假诗人

Features 🚀

  • 支持 PostgreSQL
  • 强化前端控制台,新增 tag、上次在线时间等 worker 信息,便于排查无法连接的问题。

BugFix 🐛

  • 修复 server 集群选主问题
  • 修复当没有 worker 连接到 server 时出现的 NPE 问题
  • 修复前端控制台错误显示 worker 列表的问题
最后提交信息为: [release] v4.0.1
2021-03-22 01:04
647525 kfcfans 1589424914 假诗人

PowerJob 主框架

Features 🚀

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

Compatibility 👀

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

Acknowledgements 🎉

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

PowerJob 官方处理器

点击查看使用教程

Features 🚀

  • 新发布:Spring 数据源 SQL 处理器
  • 新发布:Dynamic 数据源 SQL 处理器
最后提交信息为: chore: fix github CI failed
2021-03-08 00:07
647525 kfcfans 1589424914 假诗人

有 99.99% 的概率这是 PowerJob 在 v3.x 的最后一个版本,经历了漫长的功能升级和 BUG 修复,这将会是一个非常稳定的版本。接下来 PowerJob 即将发布 v4.x 版本,包含大量功能上的升级(工作流、集群逻辑切分、执行器过滤等等),敬请期待~

PowerJob 主框架

Features 🚀

  • 支持根据 JVM 启动参数(powerjob.network.local.address)自定义绑定的 IP 地址(可以实现公网通讯)

PowerJob 官方处理器

点击查看使用教程

BugFix 🐛

  • 修复了打包导致的 ClassNotFoundError
最后提交信息为: [release] v3.4.8
2021-02-23 01:38
647525 kfcfans 1589424914 假诗人

PowerJob 主框架

Features 🚀

BugFix 🐛

  • 修复了脚本处理器无法正常工作的问题 #222

PowerJob 官方处理器

点击查看使用教程

Features 🚀

  • 支持 HttpProcessor
  • 支持 ShellProcessor
  • 支持 PythonProcessor
  • 支持 FileCleanupProcessor

详细用法请参考文档

最后提交信息为: [release] v3.4.7
2021-02-18 00:59
647525 kfcfans 1589424914 假诗人

Features 🚀

  • 支持 swagger-ui 配置关闭
  • 新增 HTTP 协议支持多语言(python 版本 worker 正在努力开发中,敬请期待!)
  • 新增 worker 筛选接口供开发者实现自己的 worker 筛选逻辑

BugFix 🐛

  • 修复了数据库异常时 server 负反馈导致系统最终死亡的问题
  • 修复参数非法时 server 无法正常调度的问题
最后提交信息为: [release] v3.4.6
2021-01-31 23:41
647525 kfcfans 1589424914 假诗人

Features 🚀

  • 支持使用网卡名称来指定网卡

BugFix 🐛

  • 修复了任务停止后再次被重启的问题
  • 修复了 JobQuery 无法序列化导致 OpenAPI 查询失败的问题
  • 修复了不符合预期的任务失败问题(实际执行成功但系统判定为失败)
最后提交信息为: [release] v3.4.5
2021-01-17 17:42
647525 kfcfans 1589424914 假诗人

Features 🚀

  • OpenAPI 增强,支持任务查询功能
  • 支持通过 JVM 启动参数 -Dpowerjob.worker.status-check.normal.period 自定义任务检测时长

BugFix 🐛

  • 修复了并发度控制不准确的问题
  • 修复了清理 instance_info 表时偶尔会导致 NPE 的问题
最后提交信息为: [release] v3.4.4
Java
1
https://gitee.com/KFCFans/PowerJob.git
git@gitee.com:KFCFans/PowerJob.git
KFCFans
PowerJob
PowerJob

搜索帮助