问题描述
我已经在Spring Boot中开发了一个业务逻辑,需要每60天运行一次。对于将其转换为Spring批处理还是使用Scheduler批注,我有点困惑。 我应该考虑所有哪些因素来进行评估?他们中的任何一个都比其他任何人都具有优势吗? 我是Scheduler-batch概念的新手,这是我第一次进行相同的工作。
解决方法
如何评估在应用程序中使用弹簧批处理程序还是调度程序?
Spring Batch不是调度程序,因此它不是一个或一个问题。您可以同时使用两者,例如,使用调度程序来调度Spring Batch作业以在给定时间运行。
您应该问的问题是:值得在Spring Batch作业中转换您已经在Spring Boot中开发的业务逻辑,以从Spring Batch提供的功能中受益(整个应用程序仍可以是启动应用程序)。
请注意,由于您的作业需要每60天运行一次,因此使用@Scheduled
意味着您将有一个运行两个月的JVM来运行作业。除非同时计划将同一JVM用于其他用途,否则这将是资源的低效使用。在这种情况下,像cron
这样的其他调度机制更合适。