
JobRunr 8.0 的发布引入了碳感知作业处理(Carbon Aware Job Processing),这是一个新功能,它为开发人员在调度作业时提供了优化的碳足迹。其他新功能包括对 Kotlin 序列化的支持;一个新的仪表板通知中心;以及一个新的 @AsyncJob
注解,它减少了常规作业创建的样板代码。
为欧盟提供能源的ENTSO-E提供了用于碳感知调度的数据。如下图所示,碳排放量以颜色编码的小时时间线显示在 JobRunr 仪表板上。开发人员可以利用这些信息在二氧化碳排放量最低的时段安排他们的作业。如何使用这个新功能的详细信息可以在用户指南中找到。碳感知作业处理在美国尚不可用。

喜欢使用 Kotlin 2.1+构建应用程序的开发人员现在可以使用 KotlinxSerializationJsonMapper
,这是一个实现特定序列化 JsonMapper
接口的新类。 KotlinxSerializationJsonMapper
类的实例可以通过使用 JobRunr Fluent API或替换 JobRunr自动配置工具提供的默认 JsonMapper
bean 来编程配置。
新的仪表板通知中心方便地将所有通知集中在一个地方。用户只需点击菜单栏上的新铃铛图标即可最大化和最小化通知。这消除了以前版本中存在的仪表板混乱。严重通知的更多详细信息可以在单独的窗口中打开。
新的 @AsyncJob
注解减少了排队作业时的常规样板代码。只需在包含 @Job
注解方法的类上使用 @AsyncJob
即可。然后 JobRunr 将会拦截这个方法,创建作业,并保存以供将来执行。
该版本中的破坏性变更包括:
移除了 Redis 和 Elasticsearch 存储提供程序,即:
LettuceStorageProvider
、JedisStorageProvider
或ElasticSearchStorageProvider
,因为它们在 7.0 版本中已被弃用;在
RecurringJob
类中定义的多个构造函数签名发生了变化。鼓励开发人员使用RecurringJobBuilder
类来构建重复作业。在
AbstractJob
类中定义的setLabels()
方法,以及在JobBuilder
和RecurringJobBuilder
类中定义的重载withLabels()
方法,现在需要的参数是List
而不是Set
。
自 2020 年 4 月推出以来,碳感知作业处理补充了 JobRunr 自推出以来交付的重要新功能列表。这些包括:与 Spring Starter、Quarkus 和 Micronaut 的集成;Spring Native(现在已成为 Spring Boot 3.0+的一部分);以及对虚拟线程的支持。
JobRunr 的创建者Ronald Dehuysser在接受 InfoQ 采访时谈到了这次最新发布。
InfoQ:自 2020 年 4 月推出 JobRunr 以来,你的 JobRunr 之旅对你意味着什么?
Dehuysser:我最初创建 JobRunr 更多的是出于兴趣,因为我注意到 Java 缺乏一个简单、现代的后台作业处理库,可以在没有传统消息队列包袱的情况下进行扩展。刚开始的几个月的实验比我想象的更受欢迎——首先是开发人员欣赏它的简单性,然后是寻找生产中可靠后台处理的公司。
自 2020 年 4 月推出以来,JobRunr 已经从一个激情项目成长为全球公司使用的商业产品。就个人而言,看到它解决了实际的业务问题,从调度作业到扩展工作负载,并从开发人员那里收到反馈,他们说它使他们的生活更容易,这是非常值得的。
我特别自豪的是我们的最新增加——碳意识作业调度。它反映了我们不仅在改善软件基础设施,而且还在不产生太大影响的情况下帮助公司变得更可持续——我相信在未来几年,这只会变得更加重要。
InfoQ:JobRunr 的未来有什么计划?
Dehuysser:我们的下一个大目标是将碳感知作业调度带到美国。目前,它只在欧盟可用,但我们相信世界各地的开发人员都应该有工具在电网最清洁的时候调度作业——特别是随着可持续性成为一个日益增长的优先事项。我们相信构建更智能、更环保的技术。
除此之外,我们将继续做我们一直在做的事情:倾听用户的声音。他们的输入和功能请求塑造了 JobRunr 的未来。无论是新功能、性能优化还是集成,我们将继续发展以满足现实世界的需求。
JobRunr 平台提供社区版和专业版。有关这一最新版本的更多详细信息,可以在发布说明、迁移指南和启动网络研讨会中找到。
编辑注
碳感知图表由 Ronald Dehuysser 和 JobRunr 团队提供。
原文链接:
评论