【问题标题】:Limit number of processes in Celery with supervisor使用主管限制 Celery 中的进程数
【发布时间】:2017-08-16 04:52:14
【问题描述】:

我在 AWS Elastic Beanstalk 的一个小实例中运行 Celery。

但是,当我执行 top 时,我看到有 3 个 celery 进程正在运行。我只想拥有。

我正在使用supervisor 运行它,并且在我的配置文件中(仅显示相关行):

[program:celeryd]
directory=/opt/python/current/app/src
command=/opt/python/run/venv/bin/celery worker -A ..."

user=celery
numprocs=1
killasgroup=true

我也按照in this answer 的建议创建了一个文件/etc/default/celeryd,内容如下:

# Extra arguments to celeryd
CELERYD_OPTS="--concurrency=1"

重新启动 Celery(使用 supervisorctl -c config-file-path.conf restart celeryd)后,我再次看到 3 个进程。有任何想法吗?谢谢!

【问题讨论】:

    标签: celery amazon-elastic-beanstalk supervisord


    【解决方案1】:

    您正在使用celery 命令启动worker。更改 /etc/default/celeryd 不会对 celery 命令产生任何影响。此外 celeryd 已被弃用。

    当一个 worker 启动时,celery 会启动一个默认进程和 n(concurrency) 个子进程。

    你可以用

    启动worker
    [program:celery]
    command=/opt/python/run/venv/bin/celery worker -c 1 -A foo"
    

    这将启动一个并发为 1 的 worker,并且会有 2 个进程。

    【讨论】:

      猜你喜欢
      • 2017-10-09
      • 2015-07-08
      • 1970-01-01
      • 2016-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-13
      • 1970-01-01
      相关资源
      最近更新 更多