Я начинаю работника из сельдерея способом, описанным в руководстве ...
$ stoneid salimfadhley$ celery worker
-------------- celery@TCR-C02X29QPJHC9.local v4.2.1 (windowlicker)
---- **** -----
--- * *** * -- Darwin-18.2.0-x86_64-i386-64bit 2018-11-13 14:00:20
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: default:0x10fb4ee48 (.default.Loader)
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: disabled://
- *** --- * --- .> concurrency: 8 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> celery exchange=celery(direct) key=celery
[2018-11-13 14:00:21,065: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 61] Connection refused.
Trying again in 2.00 seconds...
Могу ли я предоставить некоторую конфигурацию (предпочтительно через переменную среды), чтобы работник подключался к другому адресу брокера?
Согласно руководству, я могу использовать флаг -b , чтобы указать URL посредника через командную строку, и я могу заключить работника в скрипт, который извлекает переменную среды и вставляет ее в аргумент командной строки работника сельдерея ... но могу ли я обойти это? Есть ли переменная окружения, которую я могу установить, которую рабочий подберет?
Я на самом деле запускаю это внутри контейнера Docker - самый простой способ предоставить эту информацию - это переменная окружения.