【问题标题】:Confused about difference between Heroku WEB_CONCURRENCY variable and Celery --concurrency对 Heroku WEB_CONCURRENCY 变量和 Celery --concurrency 之间的区别感到困惑
【发布时间】:2020-07-16 17:52:58
【问题描述】:

我正在尝试使用 Celery 在 Heroku Flask 应用程序中运行后台任务。我想探索配置事物以允许 Celery 并行运行比默认行为允许的更多任务。

我的理解是,可以通过指定工作进程/线程的数量来使用 Celery --concurrency 选项。但是 Heroku 的 WEB_CONCURRENCY 环境变量不也指定相同的东西,或者至少是重叠/冲突的东西吗?

如果我同时设置 WEB_CONCURRENCY 和 --concurrency 会发生什么?它们是完全分开的,还是我应该只使用其中之一?

【问题讨论】:

    标签: heroku concurrency celery


    【解决方案1】:

    这是两个不同的东西,你需要分别对待它们。

    WEB_CONCURRENCY 只是一个设置that is set automatically by heroku based on dyno-size,它更多的是 Heroku 的建议,您可能希望在一个特定大小的测功机上拥有多少个服务于网络请求的进程。 Depending on the CPU- and memory-requirements of your servers that can differ.

    您再次为 celery 选择哪个 --concurrency 取决于您的应用程序。虽然你可以从1 开始,或者从使用WEB_CONCURRENCY 作为你的worker-concurrency 开始,但你肯定必须观察这些dynos 上的负载和内存使用情况,看看你是否可以增加或必须减少这个数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 2013-02-06
      • 2014-08-30
      • 2016-09-30
      • 1970-01-01
      • 2012-11-14
      • 2017-11-11
      相关资源
      最近更新 更多