我试图了解我的 Heroku 托管后端上的 Web-Dynos、Worker-Dynos 和 RabbitMQ 之间发生了什么。
我注意到我有超过 10 个到 RabbitMQ 的连接,尽管到目前为止我使用的是一个 Web-Dyno 和一个 Woker-Dyno。我正在使用 greenthreads (eventlet) 并希望每个 Web- 或 Worker-Dyno 有一个连接。
这是我的工人从 Procfile 开始的:
celery -E -A proj worker -B -l info --maxtasksperchild=1000
就我而言,我可以有超过 10 个打开的连接:
这也是我的队列列表(celery
似乎用于排队任务,不太确定其他两个是做什么用的):
我试过玩,BROKER_POOL_LIMIT
它似乎没有帮助。现在BROKER_POOL_LIMIT = 1
,连接数为 10。
这可能是由 eventlet 而不是通常的 gunicorn-workers 引起的吗?