python-3.x 如何找到服务员发出“任务队列深度”警告的原因?

8zzbczxx  于 2023-03-09  发布在  Python
关注(0)|答案(4)|浏览(404)

有没有推荐的方法来诊断任务队列深度警告的原因,比如下面waitress中的警告?也许有一些方法可以记录排队的任务/请求?
2019-04-25 14:45:23,048 WARNI [服务员.队列:122][主线程]任务队列深度为2
我正在本地Windows 10计算机上测试pyramid应用程序。我尝试将waitresswaitress.queue的日志记录级别更改为“INFO”,并将expose_tracebacks参数设置为True,但除了警告之外,没有其他控制台输出(没有更改其他waitress.serve默认参数)。
版本:

  • 服务员版本1.3.0
  • 金字塔版本1.10.4
  • python版本3.6.5
mnemlml8

mnemlml81#

警告很简单,直接和线程数有关,Waitress默认为4个线程,一个浏览器默认为一次向每个域发送6个请求,所以如果你要加载一个有一些静态资产的站点(images/css/js)那么你很可能会把它放大并得到一个警告(6 - 4 = 2,正如你在文章中看到的)如果你把线程数增加到6,你就不会再看到警告了。

pgpifvop

pgpifvop2#

它基本上是一个INFO(而不是WARNING),表示存在比当前空闲线程更多的请求。
你可以增加线程或者完全关闭服务员日志,特别是考虑到服务员的默认日志设置,它可能会干扰应用程序日志。
https://github.com/Pylons/waitress/issues/133#issuecomment-629992140

mcvgt66p

mcvgt66p3#

队列长度是指等待线程的请求数,可以通过传递给waister.serve()的backlog参数配置队列长度,默认值为1024. Ref

bqf10yzr

bqf10yzr4#

要修复此问题,请执行 threads=100

serve(apiview.app, host="0.0.0.0", port=8080, threads=100)

相关问题