0

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

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

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

谢谢!

尼兰詹

4

1 回答 1

0

要在 SCDF 中编排任务,您必须提供一个 RDBMS,而且看起来您已经这样做了。任务存储库主要用于将任务执行保存为历史表示,因此您可以通过 GUI/Shell 深入了解整个执行历史。

您将在服务器级别配置 task-repository - 请参阅此 CF-server 的manifest.yml示例(services:section下)以供参考。

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

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

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

它会为每个解析器作业使用不同的模式吗?

这取决于您的业务需求。无论是不同的架构还是不同的表集,您都必须确定您的需求需要什么,并确保它存在/设置,然后再通过SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_TASK_SERVICES.

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

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

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

于 2017-03-11T16:58:47.830 回答