今日は、単一のアプリケーションでcron式によってスケジュールされたバッチジョブが数多くあります。私たちはこれらの仕事をより隔離して、それを春の雲の仕事に移したいと思います。スプリングクラウドタスクトリガーごとに1つのJVMプロセスが必要ですか?
しかし、ドキュメントを読んで[1]、私は私が最終的に新しいプロセスを起動するために順番にtasklauncher
(シンク)へTaskLaunchRequest
を送るtriggertask
(ソース)を使用する必要が結論に来ます。
この手段(私は1つのタスクだけ/バッチを持っている場合)私は1つの新しいプロセスを起動するために実行し、少なくとも次のJVMプロセスが必要になります。
- フローサーバ
- triggertask(ソース)
- tasklauncher (シンク)
OK、flow serverとtasklauncherは今後のタスクで共有されますが、triggertaskは1つのタスクのcron定義のみをとることができるため、fo次のタスク定義。だから私は少なくとも1つの "ナンヨーのプロセス"各タスクのために必要ですか?
本当に???これは巨大な過度のように思えます...私の見解では、cronのスケジューリングがタスク定義の中核機能であると予想していたので、必要なのはフローサーバーだけです。
私はこれが正しいことを理解していますか、私が逃したことはありますか?春のクラウド環境でこれを行う簡単な方法はありますか?私は、必要に応じて新しいJVMを開始するフローサーバーを持っているというアイデアが本当に好きですが、これらの追加のプロセスはすべて間違ったアプローチになります。
CloudFoundryで実行する必要がある場合。 http://run.pivotal.ioこれは私の35 $/Mth(Java BuildPack 4.0のJVM Processから512MBだけでもはや起動しない[2])というコストがかかる単一ジョブのcronスケジューラを持っていることを意味しています - それは高価なcron定義です...
[1] https://github.com/spring-cloud/spring-cloud-stream-app-starters/tree/master/triggertask/spring-cloud-starter-stream-source-triggertask [2] https://www.cloudfoundry.org/just-released-java-buildpack-4-0/
これらの詳細については、多くのありがとう!ですから、私が正しく理解していれば、将来的にCFとのネイティブスケジューラの統合が行われます。私が従うことができる問題はありますか? – domi
こんにちは、@ドミ。特にCFの場合、CF-SchedulerのMVPがあり、SCDFのREST-APIを介してタスクをスケジュールして起動することができます。この考え方は、SCDFでDSLを定義し、CF-SchedulerのREST-APIを使用して、希望の日付/時刻またはcronのスケジュールを設定することです。 CFスケジューラチームは、ほぼ8月にGAリリースをターゲットにしています。 また、SCDFから(APIおよびサービスバインディングを介して)CFスケジューラと直接対話する計画もあります。私たちのダッシュボードには、各タスクの日付/時刻とcron式を提供する機能があります。 –