【发布时间】:2015-02-09 17:49:09
【问题描述】:
对于我们的 Django 网站之一,我们需要运行 Celery。
我们在settings.py 中对 Celery 使用以下设置:
BROKER_URL = "redis://<ip address of the server>:6379/0"
CELERY_RESULT_BACKEND = "redis"
CELERY_REDIS_HOST = "<ip address of the server>"
CELERY_REDIS_PORT = 6379
CELERY_REDIS_DB = 0
Redis 运行正常:
$ redis-cli ping
PONG
我们用这个命令启动 Celery 服务器:
$ nohup python manage.py celeryd start
我们还有一个带有 Celery 任务的测试应用,但是当我们尝试使用它时,从未给出结果并且任务挂起:
$ python manage.py shell
>>> from celerytest.tasks import add
>>> result = add.delay(2, 2)
>>> result.ready() # returns True if the task has finished processing.
False
>>> result.result
None
>>> result.get()
我们正在使用 Django 1.3.7、Celery 3.0.9 和 djcelery 3.0.9。
我们如何找到导致 Celery 任务挂起的原因?
【问题讨论】: