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

时间:2015-05-06 00:09:59

标签: wsgi gunicorn waitress

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

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

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

  

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

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

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

2 个答案:

答案 0 :(得分:1)

Gunicorn中的线程工作程序不缓冲I / O,也不读取主线程中的请求体。

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

答案 1 :(得分:0)

Gunicorn没有HTTP请求缓冲,您可以在Waitress中找到。服务生还具有完全支持Windows的优势。