python - Worker 未运行 Python + Django + Celery + Redis

标签 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 艺术中 Celery 的美丽 C 语言。并且没有更多日志。

我现在不确定下一步需要做什么。我在本地运行它,一切都像魅力一样工作(本地我使用 Mac OS X),但在服务器上它不会遵守。

提前非常感谢!

最佳答案

抱歉回复晚了。

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

通过使用与 root 不同的用户可以简单地解决这个问题。

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

关于python - Worker 未运行 Python + Django + Celery + Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19952699/

相关文章:

redis - 在redis中存储30M条记录

Python 在所有可能的变量组合中创建新的列/属性

python - 为什么只在公共(public)函数中调用私有(private)函数?

python - 使用django表单从单个页面记录多条记录

django - 在virtualenv下设置DJANGO_SETTINGS_MODULE?

java - Spring:RedisMessageListenerContainer 在通过 java -jar 从命令行运行应用程序时不起作用

python - 在 Python 中的 ITK 函数调用中,我应该为 ParameterType 值添加什么?

python - python 2 和 3 中的 UTF-8 字符串

python - DRF : router for ViewSet with a foreign-key lookup_field

javascript - 如何使用 Javascript 对象?