我使用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
。该系统以前工作过。我想知道我应该从哪里开始寻找线索。感谢。
答案 0 :(得分:0)
关于AttributeError
消息,添加类似于下面的backend
配置设置应该有助于解决此问题:
app = Celery('tasks', broker='pyamqp://guest@localhost//', backend='amqp://')
答案 1 :(得分:0)
我的芹菜版本是4.2.1。我将CELERY_RESULT_BACKEND设置为“ rpc://”并解决了此问题。