我正在尝试在PCF上的spring cloud数据流容器中执行多个spring spring任务作业。这些作业从http源读取原始文件然后 解析它并将其写入mysql db。这些作业是用普通的java编写的,而不是用spring batch编写的。 我已经在PCF上使用scdf容器绑定了mysql数据库。我相信spring cloud任务会使用mysql db来存储这些状态的执行状态。我希望实际的输出记录也能进入mysql。
我的问题是这些作业的输出记录将如何存储在mysql db中?它会为每个解析器作业使用不同的模式吗?如果没有,那么如何配置它呢?
如果遇到这种情况,请分享您的想法。
谢谢!
Nilanjan
答案 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。