Сельдерей подключается к удаленному серверу broker_url
Я демонизирую сельдерей после документов.
Мой BROKER_URL был установлен в следующем формате:- 'amqp://<user>:<password>@<ip>/<vhost>'
,
Итак, когда я запускаю сельдерей вручную, 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-адрес, но все еще пытается соединиться с локальным amqp?
1 ответ
Ну, я нашел ответ на вопрос:
URL-адрес брокера CELERY_OPTS
как CELERYD_OPTS="-n worker2.%h --broker=amqp://<user>:<password>@<ip>/<vhost>"
в файле сельдерея.