我目前正在使用CherryPy 3.2.2并且遇到一个问题,我的ThreadPool根本没有增长和缩小。通过查看wsgiserver2.py的来源,我看到ThreadPool类中的两个函数'grow'和'shrink'。如果您下载整个仓库并搜索这两个功能以查看它们被调用的位置,则不会。也许他们被其他一些对我来说很陌生的方式所引用,但我想知道这是否是一种疏忽,或者我只是在寻找错误的地方。
注意:我在服务器上从ServerAdapter调用start之前正确设置值(thread_pool和thread_pool_max),所以不是那样。
感谢您的帮助。
pcarl
答案 0 :(得分:2)
你是对的。在CherryPy流程中不会调用ThreadPool.shrink
和ThreadPool.grow
,除非您明确调用这两种方法,否则thread_pool_max
都没有任何效果。
通常,CherryPy会懒惰地将线程工作者实例化为thread_pool
并停在那里。
如果您确定需要大线程池,这会导致应用程序的内存开销严重,您可以继承cherrypy.process.plugins.Monitor
来监视线程队列大小或其他参数来增大和缩小池。幸运的是那里已经one了。