Я разрабатываю веб-приложение с Django, которое использует Celery для обработки асинхронных задач, особенно для транзакционных писем.Django with celery: запланированное задание (ETA), выполняемое несколько раз параллельно
Один из моих заданий электронной почты запланирован с опцией ETA, но он выполняется несколько раз параллельно, что приводит к почтовой цепочке, очень анонимной. Почему я не понимаю. Я дважды проверил свой код Django, и я уверен, что он публикуется только один раз.
Я использую Redis в качестве результата брокера/бэкэнд.
Мой сельдерея демон размещен на Heroku и запущен с помощью этой команды:
python manage.py celeryd -E -B --loglevel=INFO
Спасибо за вашу помощь.
EDIT: я найти верное решение здесь благодаря парню на #celery IRC канал: http://loose-bits.com/2010/10/distributed-task-locking-in-celery.html
Обязательно прочтите: http://docs.celeryproject.org/ru/latest/getting-started/brokers/redis.html#caveats – asksol
Проблема в том, что я не знаю максимальную ETA в своем приложении. Я всегда публикую их, как только могу, даже в будущем (не так часто). Для этого я должен изменить свой дизайн приложения, сохранить его в БД и получить сканер, чтобы опубликовать их за 1 час до пример .. –