私はDjangoを使用してWebアプリケーションを開発しています。このアプリケーションは、Celeryを使用して非同期タスクを処理します。特にトランザクションメールの場合はそうです。
私の電子メールタスクの1つはETAオプションでスケジュールされていますが、並行して複数回実行されるため、メールチェーンが非常に煩わしくなります。理由がよくわかりません。Djangoコードを2回チェックしましたが、1回だけ公開されていると確信しています。
ブローカー/バックエンドの結果としてRedisを使用しています。
私のCeleryデーモンはHerokuでホストされており、次のコマンドで起動されます。
python manage.py celeryd -E -B --loglevel=INFO
ご協力いただきありがとうございます。
編集: #celery IRCチャンネルの人のおかげでここで有効な解決策を見つけました:http://loose-bits.com/2010/10/distributed-task-locking-in-celery.html