【发布时间】:2013-12-10 12:03:03
【问题描述】:
我一直在做一个使用 Celery beat 来安排任务的项目。在本地,我一直使用 RabbitMQ 作为代理,一切正常。
当我将项目推送到远程服务器时,我将代理更改为 Redis。
celery beat 进程可以正常工作,正如我在控制台中看到的那样,它正在调度任务。但工人无法接任务。当我通过在任务上使用 delay() 从 shell 异步调用任务时,即使这样,工作人员也不会拾取任务。
我认为 Redis 可能有些奇怪。然而,情况似乎并非如此。我让我的项目在本地使用 Redis。在服务器上,当我将代理更改为 RabbitMQ 时,即使这样我也遇到了同样的问题。
我的本地机器运行 Mac OS,服务器运行 Debian 6。
可能是什么问题?我如何调试这种情况并让工作人员消费任务并完成工作?我正在使用 Python 2.7。
【问题讨论】:
-
我启动了我的工作进程,然后尝试从另一个进程(IPython shell)ping 工作进程,但没有得到任何响应。相反,在我的本地机器上这似乎有效,我得到了正在运行的工人列表。不知道发生了什么。
标签: python celery celerybeat