【发布时间】:2011-08-04 12:54:31
【问题描述】:
我的任务遇到 HardTimeLimit 异常。日志检查后我发现 -
- celery 没有接收到任务(任务 ID 没有“从代理获取任务:”消息)
- 几天前执行了具有相同 ID 的任务。
任务 ID 由 @task 装饰器自动分配,任务由 django 启动,每天有约 2k 任务(每天约 30 次冲突)。
ID 的冲突是如何发生的?如何预防。
【问题讨论】:
我的任务遇到 HardTimeLimit 异常。日志检查后我发现 -
任务 ID 由 @task 装饰器自动分配,任务由 django 启动,每天有约 2k 任务(每天约 30 次冲突)。
ID 的冲突是如何发生的?如何预防。
【问题讨论】:
这应该是不可能的,即使它应该是非常罕见的。我的猜测是在您的异常发生后第二次执行相同的任务。由于工作人员没有得到任务,您的路由键可能有问题?或者代理有问题,我见过 RabbitMQ 的有趣问题。删除它的数据库 (RABBITMQ_MNESIA_BASE) 对我有帮助。
【讨论】: