flask 運行時阻塞


之前並沒有研究過flask在大量不同請求的情況下請求的處理機制,最近發現自己的一個監控系統的Recv-Q 堆積過多,然后看了一下是程序的處理能力的問題。

1、看見服務器Recv-Q較多,消費不及時

[root@iZbp1ftexcphcvhbglvmz8Z ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        12      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      17051/python        

2、索性就測試了一下flask的阻塞情況

@api.route('/')
#@auth.login_required
def index():
    import time
    time.sleep(15)
    return {
        print("hello world")
    }

同時執行了兩個請求,上面這個先執行,后面在執行一個不同的請求,就會先等上面這個15秒的執行完了才會執行另一個不同的接口。

3、然后修改主程序

1)增加gevent

2)啟動的時候開啟多線程 

nohup python manage.py runserver -d -r -h 0.0.0.0 -p 9527 --threaded &

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM