【发布时间】:2018-09-04 17:57:54
【问题描述】:
我在 Spring Boot 中创建了一个 Spring Batch 应用程序来执行日常活动以批量处理数据。我还能够构建和创建一个包含所有依赖项的 uber-jar。如何将此 jar 文件作为批处理应用程序(而不是 Web 应用程序)推送,如果可能,如何调用该应用程序以从命令行启动?
【问题讨论】:
标签: spring-boot ibm-cloud spring-batch cloud-foundry
我在 Spring Boot 中创建了一个 Spring Batch 应用程序来执行日常活动以批量处理数据。我还能够构建和创建一个包含所有依赖项的 uber-jar。如何将此 jar 文件作为批处理应用程序(而不是 Web 应用程序)推送,如果可能,如何调用该应用程序以从命令行启动?
【问题讨论】:
标签: spring-boot ibm-cloud spring-batch cloud-foundry
对于没有 Web 界面的 Cloud Foundry 应用程序,您可以通过以下方式运行它们:
---
...
no-route: true
这将禁用网络界面 - https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#no-route
您可能还希望将运行状况检查设置为处理:
---
...
health-check-type: process
这将监控您的应用程序的退出状态。请注意,这将监视您的 java 进程。如果它停止(例如批处理作业应用程序完成),Cloud Foundry 将尝试重新启动它 - https://docs.cloudfoundry.org/devguide/deploy-apps/healthchecks.html。这假设您希望您的应用程序连续运行。
您可能需要检查 java 构建包以获取运行 jar 的方法 - https://github.com/cloudfoundry/java-buildpack/blob/master/README.md。
我认为您会希望使用 Java Main method 进行部署,它使用 main() 方法运行 Java 应用程序,前提是它们被打包为可自执行的 JAR。 Cloud Foundry 会自动运行 main() 方法。
【讨论】: