我看到任务在 celery 中似乎“消失”了,并且使用 2 个节点运行。这似乎是随机发生的。任务是这样创建的:
task = perform_advance.apply_async(...)
logger.info('Task created, id: {}'.format(task.task_id))
当它起作用时,我会看到类似的东西:
[2016-04-21 01:13:02,470: INFO/Worker-8] foo.tasks.some_task[e52615da-de7a-49de-88d6-b3ca43a3383f]: Task created, id: eaaeb427-a167-4a78-ba39-4803e20cc753
[2016-04-29 21:18:40,667: DEBUG/MainProcess] Task accepted: foo.tasks.some_task[eaaeb427-a167-4a78-ba39-4803e20cc753] pid:1104
但是当它失败时,我从来没有看到任务被接受,只有它被创建。日志中没有错误。
芹菜版:
3.1.23
rabbitmq版本:
3.3.3
也致力于此。
对我们来说,结果是 RabbitMQ 的内部 Amazon ELB 负载均衡器让我们陷入困境。直接连接到 RabbitMQ 而不是 ELB 解决了这个问题。