我开始使用 uWSGI,我想知道它的工作人员是否是非阻塞/基于事件的(就像 nginx 一样)。
假设我已经像这样启动了 uWSGI:
uwsgi --http :8000 --wsgi-file test.py
如果 worker 内部的进程正在等待 IO,它是否会暂停以支持另一个应用程序请求?还是它会阻止其他请求?
如果它确实阻塞了这个设置,是否有可能改变行为以实现更高的并发级别?
我开始使用 uWSGI,我想知道它的工作人员是否是非阻塞/基于事件的(就像 nginx 一样)。
假设我已经像这样启动了 uWSGI:
uwsgi --http :8000 --wsgi-file test.py
如果 worker 内部的进程正在等待 IO,它是否会暂停以支持另一个应用程序请求?还是它会阻止其他请求?
如果它确实阻塞了这个设置,是否有可能改变行为以实现更高的并发级别?
这取决于您如何配置它,以及您的应用程序如何运行。
您可能对该页面感兴趣,因为它阐明了近期的许多不良行为(例如由应用程序独立应用单个事件模型):
您可以在 python 中使用 Gevent 并在 uwsgi.ini 中配置 gevent 选项。
http://uwsgi-docs.readthedocs.io/en/latest/Gevent.html
请记住不要将线程与 gevent (thread=0) 一起使用。