这是一个测试应用程序:
#!/usr/bin/env python
from flask import Flask
from time import sleep
application = Flask(__name__)
application.debug = True
@application.route('/a')
@application.route('/b')
@application.route('/c')
def a():
sleep(10)
return 'Hello world.'
if __name__ == '__main__':
application.run()
此应用程序部署在 Apache 上:
WSGIDaemonProcess Test processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup Test
如果你
- 在 00:00 请求 /a
- 在 00:01 请求 /b
- 在 00:02 请求 /c
, 你会
- 在 00:10 收到 /a 的响应
- 在 00:11 收到来自 /b 的响应
- 在 00:12 收到来自 /c 的响应
但是如果你
- 在 00:00 请求 /a
- 在 00:01 请求 /a
- 在 00:02 请求 /a
, 你会
- 在 00:10 收到 /a 的响应
- 在 00:20 收到 /a 的回复
- 在 00:30 收到 /a 的回复
所以我猜想对一个 URL 的每个请求都在一个线程中处理。现在我打算开发一个长拉服务器,我想我需要将每个请求分派到一个独立的线程,以避免阻塞后续请求。我该怎么办?