工人没有运行Python + Django + Celery + Redis

时间:2013-11-13 11:33:54

标签: python django redis celery worker

我在使用Celery时遇到了一些问题。我正在使用这个配置:

Redis 2.8.0
Celery 3.1.1
Python 2.7.3
django-celery 3.1.1
django 1.5.5.

全部使用virtualenv和Ubuntu 12.04。

我的settings.py的配置是:

import djcelery
djcelery.setup_loader()

BROKER_URL = "redis://127.0.0.1:6379/0"
# Redis setup
REDIS_HOST = "127.0.0.1"
REDIS_PORT = 6379
REDIS_DB = 0
REDIS_CONNECT_RETRY = True
CELERY_SEND_EVENTS = True
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
CELERY_TASK_RESULT_EXPIRES = 60

CELERY_ALWAYS_EAGER = False

我的任务在服务器上正确排入Redis。我添加了一个任务,然后检查Redis队列,确认它已被添加。如果我“延迟”任务,那么一切都是名义上的。

shell> redis-cli
redis 127.0.0.1:6379> LLEN celery
5  # tasks enqueued

然后,问题来了。在我启动工作人员并使用主管后,我从未在ps aux中看到该过程。所以我尝试手动,如:

> bin/python manage.py celeryd -l debug

[2013-11-13 11:14:41,419: DEBUG/MainProcess] | Worker: Preparing bootsteps.
[2013-11-13 11:14:41,421: DEBUG/MainProcess] | Worker: Building graph...
[2013-11-13 11:14:41,422: DEBUG/MainProcess] | Worker: New boot order: {Timer, Hub, Queues (intra), Pool, Autoreloader, StateDB, Autoscaler, Beat, Consumer}
[2013-11-13 11:14:41,426: DEBUG/MainProcess] | Consumer: Preparing bootsteps.
[2013-11-13 11:14:41,426: DEBUG/MainProcess] | Consumer: Building graph...
[2013-11-13 11:14:41,428: DEBUG/MainProcess] | Consumer: New boot order: {Connection, Events, Gossip, Mingle, Control, Heart, Tasks, Agent, event loop}

就是这样。它从未在ASCII艺术中达到美丽的芹菜C。并且没有更多的日志。

我不确定我现在需要做的下一步是什么。我在本地运行,一切都像魅力(本地我使用Mac OS X),但在服务器上它不符合。

提前多多感谢!

1 个答案:

答案 0 :(得分:3)

对不起,迟到了。

问题在于我使用root作为用户,因此在执行时会出现权限问题。

通过使用与root不同的用户来解决它。

希望这可以帮助其他人遇到同样的问题!