12

我已经构建了一个 Django Web 应用程序和一些 Django-Piston 服务。使用 Web 界面,用户提交一些数据,这些数据被 POST 到 Web 服务,然后该 Web 服务使用 Django-celery 启动后台任务。

使用 manage.py 在开发环境中一切正常。现在我正在尝试将其转移到适当的 apache 服务器上的生产中。Web 应用程序和 Web 服务在生产中运行良好,但我在将 celeryd 作为守护进程启动时遇到了严重问题。根据这些说明:http : //docs.celeryproject.org/en/latest/tutorials/daemonizing.html#running-the-worker-as-a-daemon 我创建了一个 celeryconfig.py 文件并将其粘贴在/usr/bin 目录(这是 celeryd 在我的 Arch linux 服务器上的位置)。

CELERYD_CHDIR="/srv/http/ControllerFramework/"
DJANGO_SETTINGS_MODULE="settings"
CELERYD="/srv/http/ControllerFramework/manage.py celeryd"

但是,当我尝试从命令行启动 celeryd 时,出现以下错误:

 "Missing connection string! Do you have "
celery.exceptions.ImproperlyConfigured: Missing connection string! Do you have    CELERY_RESULT_DBURI set to a real value?

不知道从这里去哪里。下面是我的 settings.py 部分,因为它与这个问题有关:

BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "controllerFramework"
BROKER_PASSWORD = "******"
BROKER_VHOST = "localhost"
4

1 回答 1

8

所以我最终与 django-celery 的项目负责人聊天。几件事。首先必须使用“manage.py celeryd”运行 celery。其次,在 settings.py 文件中你必须'import djcelery' 这个导入问题可能会在下一个版本中修复,但现在你必须这样做。

于 2010-07-26T21:42:42.770 回答