heroku - 对 Heroku WEB_CONCURRENCY 变量和 Celery --concurrency 之间的区别感到困惑
问题描述
我正在尝试使用 Celery 在 Heroku Flask 应用程序中运行后台任务。我想探索配置事物以允许 Celery 并行运行比默认行为允许的更多任务。
我的理解是,可以通过指定工作进程/线程的数量来使用 Celery --concurrency 选项。但是 Heroku 的 WEB_CONCURRENCY 环境变量是否也指定了相同的东西,或者至少是重叠/冲突的东西?
如果我同时设置 WEB_CONCURRENCY 和 --concurrency 会发生什么?它们是完全分开的东西,还是我应该只使用其中之一?
解决方案
这是两个不同的东西,你需要分别对待它们。
WEB_CONCURRENCY
只是heroku 基于 dyno-size 自动设置的设置,它更多的是 Heroku 的建议,您可能希望在一个特定大小的 dyno 上拥有多少个服务于 Web 请求的进程。根据您的服务器的 CPU 和内存要求,可能会有所不同。
您再次选择哪种--concurrency
芹菜取决于您的应用。虽然您可以从 开始1
,或者从使用WEB_CONCURRENCY
作为您的工作并发开始,但您肯定必须观察这些 dyno 上的负载和内存使用情况,看看您是否可以增加或必须减少该数字。
推荐阅读
- javascript - 使用嵌套循环计算重复项的数量。如何避免比较具有相同索引的两个字符
- java - Spring Boot 应用程序的嵌入式 HTTP 服务器在哪里?
- django - 如何在annotate django中获得布尔结果?
- javascript - 如何从 mongodb 查询回调函数返回数据?
- java - for循环内for循环代码优化
- android - 我可以在物理 android 设备 5.1 棒棒糖上运行我的颤振应用程序吗
- unity3d - 从我的工作着色器转换为统一计算着色器时流体模拟中的奇怪行为
- python - Kivy 中的“NoneType”属性错误
- javascript - 如何使用数组将带有数据的行添加到html表中,函数部分工作
- jquery - 选择标签不采用(选择器)。移动 ios 中的 HTML 值