首页 > 解决方案 > 有没有办法单独部署/更新 Spring Batch Jobs?

问题描述

我们正在运行一个用于将 CSV 文件导入数据库的 Spring Batch Web 应用程序。这个 Web 应用程序目前正在发展,并不断被新的工作所扩展。

当前更新过程如下所示: 1. 编写新代码 2. 构建一个 war 文件 3. 部署新构建的 war 文件并替换 Tomcat Webserver 上的整个 Web 应用程序

当正在运行的系统当前正在将文件导入/写入数据库时​​,这可能会给我们带来麻烦。

我想知道是否有一种聪明的方法可以单独升级春季批处理作业?

我已经考虑过将项目拆分为许多不同的 Web 应用程序,但这可能会导致所有库捆绑到 war 文件中的开销很大。

是否有构建此类应用程序的最佳实践?

感谢您的帮助 !

标签: javatomcatdeploymentspring-batch

解决方案


众所周知,这种包装模型会导致很多问题,例如您所面临的问题。我建议将您的作业打包为单独的 jar,并让您的应用程序在单独的进程中启动这些作业。使用此模型,您可以部署/升级作业,而不会影响用于启动它们的 Web 应用程序。

作为记录,Spring Batch Admin 遭受了这种打包模型的困扰(如此所述),推荐的替代品是Spring Cloud Data Flow(它使用我之前描述的模型)


推荐阅读