java - 有没有办法单独部署/更新 Spring Batch Jobs?
问题描述
我们正在运行一个用于将 CSV 文件导入数据库的 Spring Batch Web 应用程序。这个 Web 应用程序目前正在发展,并不断被新的工作所扩展。
当前更新过程如下所示: 1. 编写新代码 2. 构建一个 war 文件 3. 部署新构建的 war 文件并替换 Tomcat Webserver 上的整个 Web 应用程序
当正在运行的系统当前正在将文件导入/写入数据库时,这可能会给我们带来麻烦。
我想知道是否有一种聪明的方法可以单独升级春季批处理作业?
我已经考虑过将项目拆分为许多不同的 Web 应用程序,但这可能会导致所有库捆绑到 war 文件中的开销很大。
是否有构建此类应用程序的最佳实践?
感谢您的帮助 !
解决方案
众所周知,这种包装模型会导致很多问题,例如您所面临的问题。我建议将您的作业打包为单独的 jar,并让您的应用程序在单独的进程中启动这些作业。使用此模型,您可以部署/升级作业,而不会影响用于启动它们的 Web 应用程序。
作为记录,Spring Batch Admin 遭受了这种打包模型的困扰(如此处所述),推荐的替代品是Spring Cloud Data Flow(它使用我之前描述的模型)
推荐阅读
- django - Django 中的电子邮件字段仅适用于公司电子邮件
- google-maps - 捕捉谷歌地图事件,忽略地图上绘制的任何形状
- iphone - Flutter Webview 地图
- html - 在垂直菜单中将项目推到底部
- python - Flask App 不能用单个浏览器处理超过 6 个请求
- angular - 搜索对象数组的 Ngif 条件
- r - 为什么我在 r 中得到两个不同的 R^2,哪一个是正确的?
- geoserver - 生成 Geoserver 地图切片
- javascript - 如何在谷歌应用脚本中发布“所有”复选框值?
- android - 如何在 Android Q 上断开网络连接?