JobRunr 与 JobRunr Pro 9.0.0 已于 2026-09-30 发布。开源版把每次尝试和 runStepOnce 的 durable 步骤画进仪表盘的 Job History Chart,Pro 另加 Job Analytics、batch 暂停恢复,以及 Postgres LISTEN/NOTIFY 毫秒级拉起。多数 Spring Boot / Quarkus 应用改版本号即可,Micronaut 必须先到 5,且官方写明 v9 是最后支持 Java 8 的 OSS 大版本。
项目与许可
- 仓库:jobrunr/jobrunr
- OSS 许可:多许可。可按 LGPL-3.0-or-later 使用,也可在购买订阅后走商业许可(以仓库
License.md与 Maven Central POM 为准)。 - 坐标 / 版本:
org.jobrunr:jobrunr:9.0.0(Maven Central);Pro 在官方私有仓库。
OSS:Job History Chart 能看见哪一步挂了
官方把后台任务比作黑盒。v9 在任务详情的 History 里加了 Chart 模式(原有 Timeline 仍在),按甘特图画出每次尝试,以及 durable job 里每一步的耗时和结果。
durable 的写法是把步骤包进 JobContext.runStepOnce。某步已成功完成时,重试不会再执行该步。博文示例是按客户生成月结发票:算用量、出 PDF、扣款、发邮件。支付超时失败后,重试时已完成的两步在图上显示为跳过(空心菱形),扣款与发信重新走完。
Chart 对普通任务同样可用,能看出一次尝试里「排队等多久、真正处理多久」。视图还有 Compact / Detailed、Compressed / Linear。步骤耗时与结果也会出现在经典 Timeline 里。官方强调:runStepOnce 保证已完成的步骤不再跑;若 JVM 在步骤执行中途挂掉,该步仍可能再跑,所以步骤内副作用仍应做成幂等。
这块能力在 OSS 与 Pro 都有,无需额外配置。
Pro 边界(以下均标 Pro)
官方对照表写得很清楚,下面几项是 Pro,不要当成 OSS:
Job Analytics。 Pro 仪表盘首页按时间段给出任务量、成功率、失败与重试等汇总,并按 job signature / server / 异常拆开。用来在队列变慢时定位「是哪一类任务在拖后腿」。
Batch 暂停 / 恢复。 仪表盘有 Pause / Resume,也有 POST /jobs/{batchJobId}/pause 与 .../resume,或用 BatchJobManager。暂停后,尚未开始的子任务会等 Resume;已在 Processing 的子任务会跑完。若在仍在 enqueue 子任务时点 Pause,会先把子任务入队完再暂停。
Postgres 毫秒级启动。 Pro 用可插拔 EventBus 替代单纯依赖 UDP 组播。存储在 Postgres 时会自动走 LISTEN/NOTIFY,官方自述测了 20 个空任务:中位数约 7 ms、最大约 19 ms;若组播没送到、退回 15 秒轮询,中位数约 7.7 s。每个 server 会多占一条监听连接;轮询仍作兜底;PgBouncer 事务模式下监听需要直连 Postgres。jobrunr.multicast-group-address 已删除,需改配 EventTransport。
另外还有 PrefetchQueue(原 SmartQueue)、SelfLearningWorkerCapacityPolicy、自定义视图、永久删除已删任务、仪表盘索引加速等,官方均标为 Pro。
升级硬点
完整列表见迁移指南 Breaking Changes。常见项:
- Micronaut 5 起跳。 JobRunr / JobRunr Pro v9 要求 Micronaut 5,已去掉 Micronaut 4。Spring Boot 与 Quarkus 用户无此门槛。
- v8 弃用 API 已移除。 例如
useMicroMeter→useMetrics,withDetails→withJobLambda。Pro 侧withQueue→withPriorityQueue等同步清理。 - Quarkus 3.40 LTS。 官方称与 Quarkus 3.40 LTS 同日支持,扩展首日可用。
- Java 8。 官方警告:JobRunr v9 是最后一个支持 Java 8 的开源大版本;更晚版本若仍要 Java 8,需走 JobRunr Pro。
- 测试夹具需 JDK 17+。Pro 大表首次启动会跑新索引迁移,官方提醒规划首次开机时间。v9 与 v8 可共库,新能力(如 Analytics)只在 v9 server 上生效。
Spring Boot 可核对的依赖
OSS 核心(官方博文坐标):
<dependency>
<groupId>org.jobrunr</groupId>
<artifactId>jobrunr</artifactId>
<version>9.0.0</version>
</dependency>
implementation 'org.jobrunr:jobrunr:9.0.0'
Spring Boot 3 场景常用 starter(Maven Central 已有 9.0.0):
<dependency>
<groupId>org.jobrunr</groupId>
<artifactId>jobrunr-spring-boot-3-starter</artifactId>
<version>9.0.0</version>
</dependency>
Pro 将 jobrunr 换成 jobrunr-pro(或对应 starter),并配置 license key,走官方私有 Maven 仓库。迁移步骤与各框架示例以 Upgrade to v9 为准。
参考链接
- 发布博文:https://www.jobrunr.io/en/blog/v9-release/
- 迁移指南:https://www.jobrunr.io/en/guides/migration/v9/
- GitHub:https://github.com/jobrunr/jobrunr
- GitHub Release:v9.0.0
一起交流
分享你的思考,让讨论更进一步。