これを処理するために mq 通信を使用するフレームワークを実装することになりました。各「バッチ ノード」は、それ自体と、「nodeType=A」や「jobSizeiCanHandle=BIG」などの「バッチ クラス」パラメーターを登録します (これらは架空のものですが、要点はわかります)。クライアント コンソールはこの情報を読み取り、MQ を介してノードにクエリを実行してジョブ リストを取得します。次に、基本的なテキスト ベースのプロトコル (プロパティ ファイル形式) を介して、パラメータを含むジョブ リクエストを送信します。
command=START_JOB
job=JobABC
param1=x
param2=y
バッチ ノードの 1 つがメッセージを取得してジョブを開始し、同じ相関 ID を持つメッセージと同じ方法で成功/失敗ステータスを返します。そのため、クライアントはユーザーに応答を表示できます。
これにより、あなたが話していることを実行し、外部スケジューラ (Control-M) を介してジョブを開始することができます。上記の 'nodeType=A' を使用すると、個々のノードにクエリを実行できます (ノードは 'nodeType=A または nodeType=*' をリッスンします)。これにより、必要に応じてコマンドを特定のノードに 'ターゲット' にすることができます。
これは私たち自身のコンソールであり、Spring Batch 管理コンソールではないことに注意してください。おそらくそれは役に立たないかもしれませんが、Spring Batch API (4 または 5 asp) を使用すると、単純なコンソールを構築するのにそれほど時間はかかりません。
バッチ ノードは、HTTP REST サービスなどの単純なサービスを起動することもできますが、MQ を多用し、ノードを事前登録する必要がないというアイデアが気に入りました (フレームワーク コードは、それが HTTP コンテナーにあることを認識/気にしません)。 、そのため、エンドポイントを簡単に登録できませんでした)。MQ では、チャネルが事前に構成されており、すべてのアプリがそれを使用するだけなので、簡単に思えました。
幸運を。