Amazon SWF を使用できるかもしれませんが、それはやり過ぎ/複雑に思えます。
Amazonパイプラインもあります。おそらく正しい答えですが、セットアップするには少し読む必要があります。
簡単なことは、すべてのボックスでジョブをスケジュールし、データベースに勝者を宣言させることです。
A) DB 内の未処理の注文を「ロック」してから処理することができます。単一のトランザクションをロックしている限り、他のワーカーは 0 件の注文 (またはいくつかの新しい注文) を処理します。
B) ジョブがロックする単一の行を持つ特別なテーブルを作成できます。「work_table set worker='mybox', work_start = now() where worker = '' を更新」のようなものです。
ワーカーボックスが死んでも頑強にしたい場合は、より複雑なルールを作成する必要があります: ワーカーは、自分のジョブが完了とマークされるまでぶらぶらすることができます。ジョブがタイムリーに完了しない場合、彼らは最初のワーカーが死亡したと想定し、そのワーカーからロックを盗み、自分でジョブを実行しようとする可能性があります。
データベースがない場合は、いつでも SDB (Simple DB) または DynamoDB を使用できます。DB を 1 日に数回ヒットすることは、無料利用枠に確実に収まります。
正しく行えば、全体で 20 ~ 50 行のコードしかありません。