2014-09-09 5 views
1

В настоящее время я использую CherryPy 3.2.2, и у меня проблема, когда мой ThreadPool не растет и не уменьшается. Просматривая источник wsgiserver2.py Я вижу две функции в классе ThreadPool «расти» и «сжиматься». Если вы загрузите все репо и выполните поиск этих двух функций, чтобы увидеть, где их называют, это не так. Возможно, они вызываются каким-то другим способом, который мне чуждо, но я хотел бы знать, является ли это надзором или я просто искал неправильные места.CherryPy ThreadPool не растет и/или сокращается

Замечание: Я устанавливаю значения (thread_pool и thread_pool_max) правильно, прежде чем запуск вызывается на сервере, из ServerAdapter, поэтому его не так.

Благодарим за помощь.

pcarl

ответ

2

Вы правы. Нормы ThreadPool.shrink и ThreadPool.grow вызываются в потоке CherryPy, ни thread_pool_max не имеет никакого эффекта, если вы не вызываете эти два метода явно.

Обычно CherryPy будет лениво создавать рабочих нитей до thread_pool и остановится там.

Если вы уверены, что вам нужен большой пул потоков, который создает серьезные накладные расходы памяти для вашего приложения, вы можете наследовать cherrypy.process.plugins.Monitor для контроля размера очереди нитей или другого параметра для роста и сжатия пула. К счастью, там уже есть one.

Смежные вопросы