在云代工厂中运行带有分区的弹簧批次

时间:2018-06-02 07:12:13

标签: spring-batch spring-cloud-task pcf

我创建了一个带有spring batch(with partition)应用程序的应用程序,以此https://github.com/mminella/S3JDBC为例。我的应用程序正在从对象存储库读取一些文件并进行一些处理并写回商店对象。我的应用程序与本地分区在我的机器上工作正常。

我更改了maven,在云代工厂运行,更改了部署分区处理程序和步骤执行侦听器并在pcf上部署。

但是在尝试在pcf上推送和运行应用程序时,我遇到了一个问题:  失败的URI / v2 / info。我试图记录错误,发现有一个电话给我的应用程序,例如https://mypcf.com:443/v2/info,之后它就会出错。由于一些限制,我无法提供完整的日志。所以我想知道:

  1. 在pcf中部署弹簧批次(是否有任何额外配置 需要除了maven依赖和代码更改 deployerpartitionhandler和stepexecutionlistener和@cloudtask):                     org.springframework.cloud spring-cloud-deployer-cloudfoundry             1.1.0.M1
  2. 是否必须为分区作业提供类似my-sql的单独数据库服务。我不能使用H2(默认值,如果我 不配置任何东西)?
  3. 我是否需要在pcf中进行任何配置以支持运行多个分区?
  4. 当我正在运行远程分区时,我可以在本地STS或Intellij上运行该应用程序(不在PCF-DEV上),以便它可以运行我的应用程序 pcf(远程)并启动工人。(抱歉这个愚蠢的问题, 我是PCF的新手。

1 个答案:

答案 0 :(得分:0)

感谢您查看我的示例。回答你的问题:

  1. 您应该可以使用最新的部署版本(而不是相当旧的版本)。
  2. 是。分区步骤需要能够共享相同的作业存储库数据存储,因此像H2这样的内存数据库不适用于该用例。
  3. 除了定义您的数据源之外,这就是生活在PCF中所需要的一切。话虽这么说,还有其他事情需要配置,但您可以使用其他机制(Spring Cloud Config Server,application.properties / mil等)。
  4. 是的,您应该能够在本地运行主服务器,并且如果您正在使用CF部署程序,则将其部署到PCF上。