Java调度库JobRunr发布6.0版本

JobRunr 6.0 版本发布

JobRunr 是一个用于在 JVM 实例中可靠处理后台任务的 Java 库,自 2022 年 3 月发布 5.0 版本后,经过一年的开发,于近期发布了 6.0 版本

新特性

  1. JobBuilders
    开发者可以使用构建器 API 配置任务的各个方面。例如:

    jobScheduler.create(aJob()
            .withName("My Scheduled Job")
            .scheduleAt(Instant.parse(scheduleAt))
            .withDetails(() -> service.doWork()));
  2. JobLabels
    允许为任务添加自定义标签。例如:

    @Job(name="My Job", labels={"fast-running-job", "tenant-%0"})
    void myFastJob(String tenandId) {
     // your business logic
    }
  3. 仪表板增强
    仪表板现在显示服务器名称,并支持在任务成功或失败时记录日志的 MDC(Mapped Diagnostic Context)。
  4. 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 密集型,长运行还是短运行。

主要特点

  1. 单调度器实例保证执行
    通过乐观锁机制确保任务仅被执行一次。
  2. 持久化支持
    支持多种数据库,包括关系型数据库(如 PostgreSQL、MariaDB/MySQL、Oracle、SQL Server、DB2、SQLite)和 NoSQL 数据库(如 ElasticSearch、MongoDB、Redis)。
  3. 最小依赖
    依赖库包括 ASM、slf4j 以及 Jackson、gson 或 JSON-B 兼容库。
  4. 仪表板功能
    提供仪表板用于控制后台任务并查看任务历史。

Pro 版本功能

Pro 版本支持定义优先级队列和批量创建后台任务。

总结

JobRunr 是一个简单高效的 Java 后台任务处理库。它支持多种存储选项,优化了性能并增强了稳定性,适用于多种应用场景。无论是部署在云端、共享主机还是专用环境中,JobRunr 都能有效管理后台任务的执行。

阅读 16 (UV 16)
0 条评论