Gunicorn的gthread异步工作者类似于Waitress吗?

Ben*_*ons 10 wsgi gunicorn waitress

我已经阅读了2013年的一些帖子,Gunicorn团队计划构建一个线程缓冲层工作者模型,类似于Waitress的工作方式.这是gthread异步工作者的作用吗?gthread工作者在2014年发布了19.0版本.

Waitress有一个主异步线程来缓冲请求,并在请求I/O完成时将每个请求排入其中一个同步工作线程.

Gunicorn gthread没有太多文档,但听起来很相似.来自文档:

worker gthread是一个线程化的工作者.它接受主循环中的连接,接受的连接作为连接作业添加到线程池中.

我只是问,因为我不太了解python异步I/O代码,尽管粗略阅读gthread.py似乎表明它是一个套接字缓冲进程,可以保护工作线程免受长I/O请求(和缓冲响应I/O).

https://github.com/benoitc/gunicorn/blob/master/gunicorn/workers/gthread.py

til*_*ovi 1

Gunicorn 中的线程工作线程不会缓冲 I/O,也不会在主线程中读取请求正文。

主循环异步处理调用accept()[ 1 ],但随后套接字立即提交到线程池[ 2 ]。