我们正在运行一个用于将 CSV 文件导入数据库的 Spring Batch Web 应用程序。此 Web 应用程序目前正在发展,并不断被新工作扩展。
当前的更新过程如下所示: 1.编写新代码 2.建一个war文件 3.部署新建的war文件并替换Tomcat Webserver上的整个Web应用
当正在运行的系统当前正在向数据库导入/写入文件时,这可能会给我们带来麻烦。
我想知道是否有一种聪明的方法可以单独升级 spring batch 作业?
我已经考虑过将项目拆分成许多不同的 Web 应用程序,但是将所有库都捆绑到 war 文件中可能会带来很多开销。
构建此类应用程序是否有任何最佳实践?
感谢您的帮助!
最佳答案
众所周知,这种打包模式会导致很多问题,例如您所面临的问题。我建议将您的作业打包为单独的 jar,并让您的应用程序在单独的进程中启动这些作业。使用此模型,您可以部署/升级作业,而不会影响用于启动它们的 Web 应用程序。
根据记录,Spring Batch Admin 遭受了这种打包模型的困扰(如描述的 here ),推荐的替代品是 Spring Cloud Data Flow (它使用我之前描述的模型)
关于java - 有没有办法单独部署/更新 Spring Batch 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58792028/