Java 跨多个应用程序实例同步批处理作业

Java 跨多个应用程序实例同步批处理作业,java,spring,spring-boot,spring-batch,Java,Spring,Spring Boot,Spring Batch,我正在编写一个spring批处理应用程序,它一次只能运行一个作业实例。如果启动了多个应用程序实例,也应该是这样。遗憾的是,这些作业无法并行化,只能随机调用 因此,我要寻找的是spring引导配置,它允许我在一个处理器内以及在分布式情况下同步作业执行。我已经找到了一些类似JobLauncherSynchronizer()的方法,但我发现的所有解决方案要么只在一个处理器上工作,要么只保护作业执行的一小部分 是否有任何spring引导配置可以防止同一作业的多个并发执行,甚至可以跨多个并发运行的应用程序

我正在编写一个spring批处理应用程序,它一次只能运行一个作业实例。如果启动了多个应用程序实例,也应该是这样。遗憾的是,这些作业无法并行化,只能随机调用

因此,我要寻找的是spring引导配置,它允许我在一个处理器内以及在分布式情况下同步作业执行。我已经找到了一些类似JobLauncherSynchronizer()的方法,但我发现的所有解决方案要么只在一个处理器上工作,要么只保护作业执行的一小部分

是否有任何spring引导配置可以防止同一作业的多个并发执行,甚至可以跨多个并发运行的应用程序实例(共享同一数据库)

先谢谢你

是否有任何spring引导配置可以防止同一作业的多个并发执行,甚至可以跨多个并发运行的应用程序实例(共享同一数据库)


据我所知不是这样。如果您确实希望在作业级别进行全局同步(即一次一个作业实例),则需要一个全局同步器,如链接到的
JobLauncherSynchronizer

我制作了一个POC,可以帮助您