これはテスト アプリケーションです。
#!/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
もし、あんたが
- /a を 00:00 にリクエストする
- /b を 00:01 にリクエスト
- /c を 00:02 にリクエスト
、 あなたはするであろう
- /a からの応答を 00:10 に受信
- 00:11 に /b から応答を受信
- 00:12 に /c からの応答を受信
しかし、もしあなたが
- /a を 00:00 にリクエストする
- /a を 00:01 にリクエスト
- /a を 00:02 にリクエスト
、 あなたはするであろう
- /a からの応答を 00:10 に受信
- /a からの応答を 00:20 に受信
- /a からの応答を 00:30 に受信
したがって、1 つの URL に対するすべてのリクエストは 1 つのスレッドで処理されると思います。今、私はロングプルサーバーを開発するつもりです。後続のリクエストをブロックしないように、すべてのリクエストを独立したスレッドにディスパッチする必要があると思います。私は何をすべきか?