2017-03-11 9 views
0

PCFのSpringクラウドデータフローコンテナ内で複数のSpringクラウドタスクジョブを実行しようとしています。これらのジョブは、httpソースからrawファイルを読み込み、次に を解析してmysql dbに書き込みます。これらのジョブは、スプリングバッチではなくプレーンJavaで記述されています。 私は、PCF上のscdfコンテナにmysql dbをバインドしました。私は春のクラウドタスクは、これらのステータスの実行状況を格納するためにmysqlのDBを使用すると考えています。私は実際の出力レコードもmysqlに行きたい。PCFのSpring Cloudデータフローコンテナ内で複数のSpringクラウドタスクジョブを実行

私の質問は、これらの各ジョブの出力レコードがどのようにmysql dbに格納されるのでしょうか?これらのパーサージョブごとに異なるスキーマを使用しますか?もしそうでなければ、どうやってそれを設定するのですか?

このシナリオに遭遇した場合は、ご意見をお寄せください。

ありがとうございます!

Nilanjan

答えて

0

はSCDFでタスクを編成するには、RDBMSを供給する必要があると思います、あなたはすでにそれをやったように見えます。 task repositoryは、主にタスクの実行を履歴表現として保持するために使用されるため、GUI /シェルを使用して実行の履歴全体にドリルダウンできます。

あなたは、サーバーレベルでタスクリポジトリを設定したい - 参考のために、このCF-サーバーのmanifest.ymlサンプル(services:下のセクション)を参照してください。

私の質問は、これらの各ジョブの出力レコードがどのようにmysql dbに格納されるのですか?あなたはは、すべてのタスクのために同じデータストアを使用したい場合は

、それはSPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_TASK_SERVICES ENV-VAR経由で設定することができます。このトークンを介して供給されるものは、自動的にすべてのタスクアプリケーションに伝播されます。

ただし、適切なデータベースドライバがタスクアプリケーションのクラスパスにあることを確認することは、お客様の責任で行ってください。あなたの場合は、mysqlドライバの1つを持っている必要があります。

これらのパーサージョブごとに異なるスキーマを使用しますか?

これはビジネス要件に従います。異なるスキーマでも異なるテーブルセットでも、タスクアプリケーションをバインドする前に、必要なものを特定し、存在/設定を確認してからSPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_TASK_SERVICESを実行する必要があります。

もしそうでなければ、どうすれば設定できますか?

異なるデータソースを使用する必要がある場合は、要件に固有のスキーマ/テーブルの変更を含む異なるmysqlバインドをタスクアプリケーションに指定できます。このsectionを確認して、自動設定がPCFでどのように起動するかを確認してください。

別のオプションとして、別のアプリケーションで別のmysqlバインディングを選択的に提供することもできます。ここにはdocsがあります。

+0

こんにちはSabby、ありがとうございました。詳しい説明はありません。私はプロパティapp.jdbc.spring.cloud.deployer.cloudfoundry.services = mysqlServiceもタスク起動コマンドで動作すると考えています。私が理解しているように、私はPCF上にmysqlサービスを作成しなければなりません。タスクを起動する際に、このプロパティを渡して、自分のタスクをmysqlインスタンスにバインドしなければなりません。 DataFlowRestTemplate APIからタスクを起動するときにこのプロパティを渡すことはできますか?ありがとう! –

+0

ちょうど今私はあなたの別の投稿からそれを得ました:curl http:// localhost:9393/tasks/deployments/foo \?arguments \ = \&properties \ = -d ""私はDataFlowRestTemplateをどのように設定するのですか? –

関連する問題