如何将 Spring Batch Cron 作业迁移到 Spring Cloud 任务

Posted

技术标签:

【中文标题】如何将 Spring Batch Cron 作业迁移到 Spring Cloud 任务【英文标题】:How to Migrate Spring Batch Cron Jobs To Spring Cloud Task 【发布时间】:2021-02-12 04:32:45 【问题描述】:

我为现有的 cron 作业使用了quartz api,但是我应该如何使用 spring 云任务配置这些 cron 作业。我们可以从数据库中动态获取每个作业的 cron 表达式定义以安排作业,但是我需要如何为每个作业使用 spring 云任务配置它。

我还没有看到关于为 spring cloud 任务配置多个 cron 作业的文档。

【问题讨论】:

【参考方案1】:

Spring Cloud Task 不能替代 Quartz 或任何调度程序 API,因此迁移在功能上是不一样的。您仍然可以将 Quartz 与 Spring Cloud Task 一起使用来处理编排(何时运行工作负载),就像使用 Spring Batch 一样。

【讨论】:

感谢迈克尔的回答。难道我们不能编写用spring批处理框架和石英api库编写的cron作业,而不使用石英api,只用spring cloud任务和spring批处理框架吗? Spring Batch 和 Spring Cloud Task 不提供调度 API。您需要使用 Quartz 或 Spring Framework 的调度功能来执行实际的调度,或者使用具有调度功能的平台,如 Kubernetes。 感谢迈克尔,您的回答对我来说非常具有解释性。

以上是关于如何将 Spring Batch Cron 作业迁移到 Spring Cloud 任务的主要内容,如果未能解决你的问题,请参考以下文章

使用 Micrometer 发布 Spring Batch 指标

我们如何在Spring Batch的作业的不同步骤之间共享数据?

如何使用 CommandLineJobRunner 调用嵌入在 Spring Boot 应用程序中的 Spring Batch 作业

关于这个 Spring Batch @Scheduled() 注解以及如何手动启动 Spring Batch 作业的一些疑问?

Spring Boot,Cron作业同步

如何在 Spring Cloud Data Flow 中为 Spring Batch 作业设置调度程序?