混淆了Heroku WEB_CONCURRENCY变量和Celery之间的区别——并发性



我正在尝试使用Celery在Heroku Flask应用程序中运行后台任务。我想探索一下如何配置一些东西,以允许Celery并行运行比默认行为允许的更多的任务。

我的理解是,Celery-concurrency选项可以通过指定工作进程/线程的数量来实现这一点。但是,Heroku的WEB_CONCURRENCY环境变量是否也指定了相同的内容,或者至少指定了重叠/冲突的内容?

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

这是两件独立的事情,您需要分别对待它们。

WEB_CONCURRENCY只是heroku根据dyno大小自动设置的一个设置,它更像是heroku建议在一个特定大小的dyno上有多少个处理web请求的进程。根据服务器的CPU和内存需求,可能会有所不同。

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

最新更新