質問に答えるには:
- Spring Cloud Task はオーケストレーションを処理しますか -いいえ。Spring Cloud Task はタスクまたはジョブのオーケストレーションを処理しません。タスクまたはジョブのデプロイ/オーケストレーションを処理するこのエコシステムのコンポーネントは、実際には Spring Cloud Data Flow です (これが、YARN、Cloud Foundry、Kubernetes、または Mesos を含む任意のタイプのクラウド プラットフォームを使用しているかどうかを尋ねた理由です...環境Spring Cloud Data Flow でサポートされています)。
- Spring Cloud Task は、Spring Boot/Spring Batch よりもどのような付加価値を提供しますか - Spring Cloud Task は、いくつかのことを提供するように設計されています。
- バッチ ジョブを作成する必要のない状態管理に関して、Spring Batch と同様の機能。クラウド環境で Boot アプリケーションを実行する場合、環境から環境への結果を取得する標準的な方法はありません (YARN は、Kubernetes のジョブとは異なる Cloud Foundry のタスクとは異なる方法でジョブの結果を処理します)。Spring Batch はこれを提供しますが、すべての短期間のプロセスは Batch API のオーバーヘッドを必要とするため、Spring Cloud Task はそれらのユース ケースに軽いタッチを提供します。
- 情報リスナーを自動的に追加します。 Spring XD では、XD コンテナーでジョブを実行すると、XD コンテナーは、リッスンできるイベントをブロードキャストする多数の情報リスナーを自動的に追加しました。Spring Cloud Task は、XD コンテナーを必要とせずに同じ機能をもたらします。
- Spring Cloud Stream との統合。Spring Cloud Task は、Spring Cloud Stream から受信したメッセージからタスクを起動する機能を提供します。また、前述の情報メッセージ (バッチ イベントとタスク イベントの両方) は、Spring Cloud Stream チャネルを介して送信されます。
DeployerPartitionHandler
。_ クラウド環境で作業する場合、このPartitionHandler
実装により、分割されたバッチ ジョブのワーカーをタスクとして起動できます。これにより、最新のクラウド環境でリソースを浪費する作業をリッスンするワーカーを事前に展開するという従来のオプションの代わりに、分割されたバッチ ジョブの動的なスケーリングが可能になります。
- 複数のタスクのパッケージ化は依存関係でどのように機能しますか -要するに、これはお勧めできません。Spring Cloud タスクの考え方は、Spring Boot アプリケーションの実行がタスクであるということです。複数のタスクをパッケージ化してさまざまな方法を使用することもできますが、それらをさまざまな刺激に基づいて実行させることは、Spring Cloud Task を正しく使用するために不可欠な 12 要素アプリケーションの概念に反します。
私の 2 セント
最新のバッチ プラットフォームの最適なオプションについては、最初にプラットフォームの一部を調べる必要があり、それは Cloud Foundry/Kubernetes/Mesos/YARN レイヤーから始まります。それがなければ、インフラストラクチャの大部分を自分で構築することになります。そのため、Spring XD は Spring Cloud Data Flow に進化しました。Spring XD のコンテナーに存在していた追加の複雑さは、実行する最新のプラットフォームを必要とすることによって取り除かれます (それらはすべてそれらの保証を自分で処理するため)。その部分がなければ、ほとんどの最新のプラットフォームが処理するアプリケーションの展開とオーケストレーションの管理に多くの時間を費やすことになります.
そこから、単純なタスクにはSpring Cloud Task、バッチジョブにはSpring Batch、オーケストレーションにはSpring Cloud Data Flowを使用すると、選択は非常に簡単になります。