JobRunr 6.0 版本发布
JobRunr 是一个用于在 JVM 实例中可靠处理后台任务的 Java 库,自 2022 年 3 月发布 5.0 版本后,经过一年的开发,于近期发布了 6.0 版本。
新特性
JobBuilders:
开发者可以使用构建器 API 配置任务的各个方面。例如:jobScheduler.create(aJob() .withName("My Scheduled Job") .scheduleAt(Instant.parse(scheduleAt)) .withDetails(() -> service.doWork()));
JobLabels:
允许为任务添加自定义标签。例如:@Job(name="My Job", labels={"fast-running-job", "tenant-%0"}) void myFastJob(String tenandId) { // your business logic }
- 仪表板增强:
仪表板现在显示服务器名称,并支持在任务成功或失败时记录日志的 MDC(Mapped Diagnostic Context)。 - Spring Boot 3 AOT 支持:
新增了对 Spring Boot 3 AOT(Ahead-of-Time)编译的支持,并提供了新的启动器。
性能优化
- 任务入队优化:
JobRunr 优化了任务的入队性能。 - 指标跟踪:
集成了 MicroMeter,用于跟踪每个BackgroundJobServer
上入队、失败和成功任务的指标,但此功能现在是可选的。 - 稳定性提升:
改进了异常处理机制,防止在数据库故障时处理任务。
JobRunr 简介
JobRunr 由 Ronald Dehuysser 创建,于 2020 年 4 月首次发布。它提供了一个统一的编程模型,用于以最小的依赖和低开销创建和执行后台任务。任务可以通过 Java 8 的 lambda 表达式轻松创建,无论是 CPU 密集型还是 I/O 密集型,长运行还是短运行。
主要特点
- 单调度器实例保证执行:
通过乐观锁机制确保任务仅被执行一次。 - 持久化支持:
支持多种数据库,包括关系型数据库(如 PostgreSQL、MariaDB/MySQL、Oracle、SQL Server、DB2、SQLite)和 NoSQL 数据库(如 ElasticSearch、MongoDB、Redis)。 - 最小依赖:
依赖库包括 ASM、slf4j 以及 Jackson、gson 或 JSON-B 兼容库。 - 仪表板功能:
提供仪表板用于控制后台任务并查看任务历史。
Pro 版本功能
Pro 版本支持定义优先级队列和批量创建后台任务。
总结
JobRunr 是一个简单高效的 Java 后台任务处理库。它支持多种存储选项,优化了性能并增强了稳定性,适用于多种应用场景。无论是部署在云端、共享主机还是专用环境中,JobRunr 都能有效管理后台任务的执行。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。