我建立了一个Django网络应用程序和一些Django-Piston服务。用户使用Web界面提交一些数据,该数据被POST到Web服务中,然后该Web服务使用Django-celery启动后台任务。
在manage.py中,开发环境下一切都运行正常。现在,我正在尝试将其移到适当的Apache服务器上进行生产。在生产中,网络应用程序和Web服务都可以正常工作,但我在以守护进程模式启动celeryd时遇到了严重问题。根据这些说明:http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#running-the-worker-as-a-daemon,我创建了一个celeryconfig.py文件,并将其放在/usr/bin目录中(这是我的Arch Linux服务器上celeryd的位置)。
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"
CELERY_RESULT_DBURI
是否在某处设置了? - S.LottCELERY_RESULT_BACKEND = 'amqp'
但是,当我尝试运行celeryd时,出现了错误:[2010-07-23 12:46:13,138: WARNING/MainProcess] raise KeyError("Missing hostname for AMQP connection.") [2010-07-23 12:46:13,138: WARNING/MainProcess] KeyError [2010-07-23 12:46:13,138: WARNING/MainProcess] : [2010-07-23 12:46:13,139: WARNING/MainProcess] 'Missing hostname for AMQP connection.'由于我遇到了这个错误,并且在django-celery的文档中找不到需要设置此值的任何地方,因此我认为我又做错了什么。 - Przemek