在PCF上的Spring Cloud数据流容器中运行多个Spring Spring任务作业

时间:2017-03-11 06:25:05

标签: spring-cloud-dataflow spring-cloud-task

我正在尝试在PCF上的spring cloud数据流容器中执行多个spring spring任务作业。这些作业从http源读取原始文件然后 解析它并将其写入mysql db。这些作业是用普通的java编写的,而不是用spring batch编写的。 我已经在PCF上使用scdf容器绑定了mysql数据库。我相信spring cloud任务会使用mysql db来存储这些状态的执行状态。我希望实际的输出记录也能进入mysql。

我的问题是这些作业的输出记录将如何存储在mysql db中?它会为每个解析器作业使用不同的模式吗?如果没有,那么如何配置它呢?

如果遇到这种情况,请分享您的想法。

谢谢!

Nilanjan

1 个答案:

答案 0 :(得分:0)

要在SCDF中编排任务,您必须提供RDBMS,看起来您已经这样做了。 task repository主要用于将任务执行持久化为历史表示,因此您可以通过GUI / Shell深入了解执行的整个历史记录。

您可以在服务器级别配置任务存储库 - 请参阅此CF服务器的manifest.yml示例(services:部分下的)以供参考。

  

我的问题是这些作业的输出记录将如何存储在mysql db中?

如果您希望 为所有任务使用相同的数据存储区,则可以通过SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_TASK_SERVICES env-var进行配置。通过此令牌提供的任何内容都将自动传播到所有Task应用程序。

但是,您有责任确保正确的数据库驱动程序位于Task应用程序的类路径中。在你的情况下,你需要有一个mysql驱动程序。

  

它是否会为每个解析器作业使用不同的架构?

这取决于您的业务需求。无论是不同的模式还是不同的表集,您都必须确定需求所需的内容,并确保在通过SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_TASK_SERVICES绑定任务应用程序之前存在/设置它。

  

如果没有,那我该如何配置呢?

如果必须使用其他数据源,则可以为Task应用程序提供不同的mysql绑定,其中包括您的需求特定架构/表更改。查看此section以了解自动配置如何在PCF上启动。

作为替代选项,您也可以在每个应用程序中有选择地提供不同的mysql绑定 - 这里有一些docs