バックグラウンドで長い計算を実行する必要があるアプリケーションを書いているので、基本的に次のワークフローがあります。
- クライアントはエッジ「ディスパッチャー」サーバーにジョブを送信します。
- Dispatcher サーバーがジョブをメッセージ キューに送信します。
- 計算サーバーがジョブをプルして作業を開始します。
計算サーバーは、クライアントが進行状況を監視できるように、作業のステータスに関するライブ フィードバックも提供します。
私が現在抱えている主な問題は、キューに送信されたメッセージの一意のジョブ ID を取得する方法と、メッセージを処理したサーバーを事後に把握することです。ジョブが最初に送信されると (ステップ 1)、クライアントはジョブを識別する一意のトークンを受け取る必要があります。クライアントは、ディスパッチャ サーバーを定期的にポーリングして、トークンが開始されているかどうかのステータスを確認できる必要があります。
計算サーバーが要求を処理した後、クライアントはポーリング呼び出しでエンコーダー サーバーの DNS アドレスまたは IP アドレスを取得する必要があります。
どうすればこれを実現できますか? メッセージ キューは、キュー内のメッセージごとに一意の識別トークンというこの概念を提供しますか?