1

我正在按照文档对 celery 进行守护。

我的 BROKER_URL 已设置为以下格式:- 'amqp://<user>:<password>@<ip>/<vhost>'

因此,当我手动启动 celery 时celery worker -A app_name,它会与远程服务器连接。但是当我守护它时,它会与本地主机 amqp 连接。有什么理由吗?

这是我创建芹菜对象的方法:-

app = Celery('c26_search')    
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
app.conf.update(
    CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
)
print app.conf.BROKER_URL  # prints remote url

我的 settings.py 文件:-

CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
BROKER_URL = `'amqp://<user>:<password>@<ip>/<vhost>'`

为什么它的行为如此诡异?即使它打印了远程 IP url,但仍然尝试与本地 amqp 连接?

4

1 回答 1

1

好吧,我找到了问题的答案:-

传递代理 urlCELERY_OPTSCELERYD_OPTS="-n worker2.%h --broker=amqp://<user>:<password>@<ip>/<vhost>"celeryd 文件中的一样。

于 2016-08-27T20:42:35.830 回答