【发布时间】:2013-02-11 02:49:33
【问题描述】:
我正在使用 Django 开发一个 Web 应用程序,它使用 Celery 来处理异步任务,尤其是对于事务性电子邮件。
我的电子邮件任务中的一个是使用 ETA 选项安排的,但它并行执行多次,导致邮件链,非常烦人。我无法弄清楚为什么。 我检查了两次我的 Django 代码,我确定它只发布了一次。
我使用 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
【问题讨论】:
-
问题是我不知道我的应用程序中的最大 ETA。我总是尽快发布它们,即使在很远的将来(不会经常发生)。为此,我应该更改我的应用程序设计,将其存储在数据库中并让爬虫在 1 小时前发布它们例子..
标签: django heroku celery django-celery