【问题标题】:Celery worker not consuming task and not retrieving results芹菜工人不消费任务也不检索结果
【发布时间】:2016-06-04 07:46:45
【问题描述】:

我使用 Celery 和 RabbitMQ 作为代理,redis 作为结果后端。我现在手动将任务分派给工人。我一发出任务就可以得到任务ID。但实际上芹菜工人并没有在他们身上工作。我在磁盘上看不到结果文件。后来当我想用AsyncResult查看结果时,当然得到了AttributeError: 'DisabledBackend' object has no attribute '_get_task_meta_for'

我检查了 RabbitMQ 和 redis,它们都在工作 (redis-cli ping)。日志还写着Connected to amqp://myuser:**@127.0.0.1:5672/myvhost

另一个有趣的事情是我实际上有另一个远程服务器正在使用连接到代理的任务。它还记录“连接到 amqp”,但两个节点无法看到对方:mingle: searching for neighbors, mingle: all alone。该系统以前工作过。我想知道我应该从哪里开始寻找线索。谢谢。

【问题讨论】:

标签: python celery


【解决方案1】:

关于AttributeError 消息,添加类似于下面的backend 配置设置应该有助于解决它:

app = Celery('tasks', broker='pyamqp://guest@localhost//', backend='amqp://')

【讨论】:

    【解决方案2】:

    我的 celery 版本是 4.2.1。我将 CELERY_RESULT_BACKEND 设置为 'rpc://' 并解决了这个问题。

    另见celery result_backend configuration document

    【讨论】:

      猜你喜欢
      • 2020-12-29
      • 1970-01-01
      • 2015-05-28
      • 2020-10-07
      • 2014-08-14
      • 2018-09-09
      • 1970-01-01
      • 2019-03-13
      • 2014-07-14
      相关资源
      最近更新 更多