【问题标题】:Celery - collision of task_ids芹菜 - task_ids 的冲突
【发布时间】:2011-08-04 12:54:31
【问题描述】:

我的任务遇到 HardTimeLimit 异常。日志检查后我发现 -

  1. celery 没有接收到任务(任务 ID 没有“从代理获取任务:”消息)
  2. 几天前执行了具有相同 ID 的任务。

任务 ID 由 @task 装饰器自动分配,任务由 django 启动,每天有约 2k 任务(每天约 30 次冲突)。

ID 的冲突是如何发生的?如何预防。

【问题讨论】:

    标签: python django celery


    【解决方案1】:

    这应该是不可能的,即使它应该是非常罕见的。我的猜测是在您的异常发生后第二次执行相同的任务。由于工作人员没有得到任务,您的路由键可能有问题?或者代理有问题,我见过 RabbitMQ 的有趣问题。删除它的数据库 (RABBITMQ_MNESIA_BASE) 对我有帮助。

    【讨论】:

    • 问题确实存在,因为每 2k 任务有 30 次冲突 - 这是一个意想不到的频率)我会检查 Rabbit,但我不使用任何“智能”路由
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2021-10-24
    • 2019-02-22
    相关资源
    最近更新 更多