如何评估在应用程序中是使用 spring 批处理还是调度程序?

How to assess whether to use spring batch or scheduler in application?

我已经在 spring 引导中开发了一个业务逻辑,需要每 60 天 运行 一次。我不太清楚是将其转换为 spring 批处理还是使用调度程序注释。 我应该考虑哪些所有因素来评估相同的因素?他们中的任何一个都比另一个有任何性能优势吗? 我是调度程序批处理概念的新手,这是我第一次从事相同的工作。

How to assess whether to use spring batch or scheduler in application?

Spring Batch 不是一个调度程序,所以它不是一个非此即彼的问题。您可以同时使用两者,例如使用调度程序在给定时间将 Spring 批处理作业调度到 运行。

您应该问的问题是:是否值得将您在 spring 中开发的业务逻辑转换为 Spring Batch 作业以从 Spring Batch 提供的功能中获益(整个应用程序可以保留为启动应用程序)。

作为旁注,由于您的工作需要每 60 天 运行,使用 @Scheduled 意味着您将有一个 JVM 运行ning 两个月到 运行一份工作。除非您计划同时将同一个 JVM 用于其他事情,否则这将是一种低效的资源使用。 cron 等其他调度机制在这种情况下更合适。