【问题标题】:Synchronize Batch Jobs across multiple Application Instances跨多个应用程序实例同步批处理作业
【发布时间】:2021-07-31 17:50:34
【问题描述】:

我正在编写一个 Spring Batch 应用程序,它一次只能运行一个 Job Instance。如果启动了多个应用程序实例,这也应该是正确的。遗憾的是,这些作业不能并行化并且是随机调用的。

所以,我正在寻找的是一种 Spring Boot 配置,它允许我在一个处理器内以及在分布式情况下同步作业执行。我已经找到了一些方法,例如 JobLauncherSynchronizer (https://docs.spring.io/spring-batch-admin/trunk/apidocs/org/springframework/batch/admin/launch/JobLauncherSynchronizer.html),但我发现的所有解决方案要么仅在一个处理器上工作,要么仅保护一小部分作业执行。

是否有任何 Spring Boot 配置可以防止同一作业的多个并发执行,即使跨多个并发运行的应用程序实例(共享同一个数据库)?

提前谢谢你。

【问题讨论】:

标签: java spring spring-boot spring-batch


【解决方案1】:

是否有任何 Spring Boot 配置可以防止同一作业的多个并发执行,即使跨多个并发运行的应用程序实例(共享同一个数据库)?

据我所知。如果您真的想在作业级别进行全局同步(即一次一个作业实例),您需要一个全局同步器,例如您链接到的JobLauncherSynchronizer。

【讨论】:

    猜你喜欢
    • 2021-11-15
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多