【问题标题】:Is there a way to deploy/update Spring Batch Jobs seperately?有没有办法单独部署/更新 Spring Batch Jobs?
【发布时间】:2019-11-10 19:08:30
【问题描述】:

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

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

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

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

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

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

感谢您的帮助!

【问题讨论】:

  • 我认为你应该使用事务来确保你的数据是一致的。
  • 这可能会防止我们丢失任何数据,我们也可以在升级应用程序之前等待作业完成。我们已经在使用基于事务的作业,但我们正在寻找一种更好的方式来部署/升级作业或应用程序。

标签: java tomcat deployment spring-batch


【解决方案1】:

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

作为记录,Spring Batch Admin 遭受了这种包装模型的困扰(如 here 所述),建议替换为 Spring Cloud Data Flow(使用我之前描述的模型)

【讨论】:

  • 您先生应该获得奖牌!再一次感谢你 !我会看一下 SCDF,尽管乍一看它看起来很复杂。
猜你喜欢
  • 2021-02-08
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
相关资源
最近更新 更多