1

私にはたくさんの仕事があり、すべての仕事は、多くのワーカーアプリケーションが動作するいくつかの基本的な操作から構成されているとしましょう。

私はすべての操作のメッセージをワーカーに送信します。これにより、ワーカーはこれらのメッセージをキャッチし、必要な処理を実行してから、コントロールキュー内のメッセージでコントロールアプリケーションに通知できます。

しかし、どうすればすべての操作が完了したことを知ることができますか?SQSメッセージの順序が正しくないため、「最後の」メッセージを送信することはできません。

4

1 に答える 1

1

メッセージの順序が狂っている可能性があるだけでなく、さまざまな理由で完全に失敗する可能性があることを考えると、通常、問題が正当化される場合は、メッセージとジョブ固有のシリアル番号の両方を追加します。

例えば; 最初に送信するジョブは 3 つの項目で構成されているため、ジョブ 1-3-1、1-3-2、および 1-3-3 です。この架空の番号付け方式では、ジョブ 1 は 3 つの部分で構成され、3 つの部分で構成されます。マスターが 131 と 133 を受信すると、ジョブを完了するために 132 で待機していることを「認識」します。一定期間受信しない場合は、リクエストを再発行することさえできます。

このようないくつかのスキームは、リクエストとリクエストフラグメントが混同されるのを防ぎます。

幸運を

于 2011-10-31T12:35:48.957 に答える