有没有办法分别部署/更新Spring Batch Jobs?

时间:2019-11-10 19:08:30

标签: java tomcat deployment spring-batch

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

当前更新过程如下: 1.编写新代码 2.建立战争档案 3.部署新构建的war文件,并在Tomcat Web服务器上替换整个Web应用程序

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

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

我已经考虑过将Project分成许多不同的Web应用程序,但是将所有库都捆绑到war文件中可能会产生很多开销。

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

为记录起见,Spring Batch Admin受此包装模型的困扰(如here所述),建议的替代品为Spring Cloud Data Flow(使用我之前描述的模型)