我可以使用环境变量让 Celery worker 连接到不同的 worker 吗?
Can I use environment variables to make Celery worker connect to a different worker?
我正在按照手册中描述的方式启动 Celery worker...
$ 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,我可以将工作程序包装在脚本中它提取环境变量并将其填充到 celery worker 的命令行参数中......但是我可以绕过它吗?是否有我可以设置的环境变量,工作人员将接手?
我实际上 运行 在 Docker 容器中 - 提供此信息的最简单方法是作为环境变量。
大部分设置都可以通过环境变量进行设置。命名约定是以 CELERY_ 为前缀,然后将设置名称大写。
在本例中,设置为 broker_url
,因此环境变量为 CELERY_BROKER_URL
。
我正在按照手册中描述的方式启动 Celery worker...
$ 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,我可以将工作程序包装在脚本中它提取环境变量并将其填充到 celery worker 的命令行参数中......但是我可以绕过它吗?是否有我可以设置的环境变量,工作人员将接手?
我实际上 运行 在 Docker 容器中 - 提供此信息的最简单方法是作为环境变量。
大部分设置都可以通过环境变量进行设置。命名约定是以 CELERY_ 为前缀,然后将设置名称大写。
在本例中,设置为 broker_url
,因此环境变量为 CELERY_BROKER_URL
。