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 在官方私有仓库。

主源:v9 发布博文、v9 迁移指南。

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。常见项:

  1. Micronaut 5 起跳。 JobRunr / JobRunr Pro v9 要求 Micronaut 5,已去掉 Micronaut 4。Spring Boot 与 Quarkus 用户无此门槛。
  2. v8 弃用 API 已移除。 例如 useMicroMeter → useMetrics,withDetails → withJobLambda。Pro 侧 withQueue → withPriorityQueue 等同步清理。
  3. Quarkus 3.40 LTS。 官方称与 Quarkus 3.40 LTS 同日支持,扩展首日可用。
  4. Java 8。 官方警告:JobRunr v9 是最后一个支持 Java 8 的开源大版本;更晚版本若仍要 Java 8,需走 JobRunr Pro。
  5. 测试夹具需 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
— 感谢阅读 —

一起交流

分享你的思考,让讨论更进一步。