次のシナリオがあります。
- 処理が必要なジョブの場合、ジョブの説明を含むメッセージが Amazon SQS メッセージキューに送信されます
- 私は仕事をしなければならないさまざまなプロセスを持っています
次の条件を満たす必要があります。
- 1 つのプロセスがジョブを完了できなかった場合 (そのプロセスが実行されているサーバーがクラッシュしたなどの理由で)、他のプロセスがそのジョブを再び使用できるようにする必要があります。
- 1 つのジョブが処理されている間、同じ説明を持つ他のジョブは、最初のジョブが終了するかタイムアウトになるまで待機する必要があります。
- システムは、メッセージ キューの長さに応じて簡単に拡張できる必要があります。
(1) を保証するために、Amazon SQS キューが提供するメッセージ ロック機能を使用することを最初に考えましたが、(2) を保証するにはどうすればよいでしょうか? プロセスを職務記述書に割り当てることはオプションですが、(3) はより困難になります。