SQSは、アプリケーションがべき等であることを期待しており、複数のコンシューマー/プロデューサーがあります(SQSに1回限りの配信メカニズムがある場合でも)競合状態が重複を作成し、コンシューマーがcronジョブを介して実行されるため競合状態が消費されます。
select_for_update
私の現在の計画は、同じ行の他のコンシューマーをブロックするDjango 1.4を使用して、次のようなことを行うことです。
reminders = EmailReminder.objects.select_for_update().filter(id=some_id)
if not reminders[0].finished:
reminder.send()
reminder.update(finished=datetime.now())
# Delete job.
これに対処するためのより良い方法はありますか?