2014-09-29 57 views
0

一個簡單的片段,以顯示我的測試中gunicorn服務器阻塞:當打開一個空閒連接,但不是在uWSGI

import flask 

app = flask.Flask(__name__) 


@app.route('/') 
def index(): 
    return 'Hello, world!' 

if __name__ == '__main__': 
    app.run(debug=True) 

保存它server.py,然後用兩種方式除了啓動:

  1. gunicorn -b 127.0.0.1:8000服務器:應用
  2. uwsgi --http:8000 --module服務器--callable應用

因此,他們每個人都會在localhost上監聽8000端口,當他們單獨調用時。

是什麼讓我困惑的是,我創建telnet空閒連接,然後,只需調用telnet 127.0.0.1 8000在另一端的工作空間,然後我訪問服務器命令curl http://127.0.0.1:8000

  1. 捲曲的過程將gunicorn阻止服務器
  2. 但在uwsgi的方式,curl立即得到響應,與telnet的空閒連接仍然活着!

爲什麼uwsgi在這裏沒有阻塞?根據我的理解,這只是一名工人。謝謝!

回答

0

uWSGI使用延遲接受(這是一些操作系統的功能),所以直到沒有數據插座的過程中會不會對接受喚醒()

+0

非常感謝您! gunicorn有這個選擇嗎?我更喜歡在一般工作中使用gunicorn。 – mailto1587 2014-09-30 07:12:12

相關問題