flask 實現非同步非阻塞 gevent

2022-05-19 12:08:22 字數 1543 閱讀 8732

我們都知道,flask不支援非同步非阻塞的請求,我們可以建立乙個新專案去測試一下,推薦大家使用pycharm去開發我們的flask  使用特別的方便。

rom flask import flask

import time

def hello_world():

time.sleep(10)

return 'hello world!'

def beijing():

return 'beijing'

if __name__ == '__main__':

這樣我們實現了乙個簡單的;flask**,我們讓第乙個檢視休眠10s,第二個正常返回,

我們試著用瀏覽器訪問下。

我們可以看到,這個時候我去訪問第乙個檢視,一直處於載入中,這個時候我去訪問第二個檢視,也是處於一直載入中,那麼我們怎麼去修改呢,其實

我們gevent庫就可以幫助我們去解決這個問題

修改後的**如下,我們可以試著去請求下。

我們可以看到,當我們第乙個阻塞住的時候,我們可以正常的去訪問我們第二個路由

那麼我們這樣就可以實現我們非同步的非阻塞的flask,

可以運用到實際的工作中。

推薦乙個gevent學習的部落格

世上本沒有路,走多了變有路。

作者寄語:

前進的道路我們充滿著迷茫,

前進的每一步我們都會有收穫。

路在腳下,我們決定不了我們的出身,但是我們可以努力改變我們未來。

告別昨天失敗的自己,努力拼搏今天,成就美好明天

非同步非阻塞

sk.setblocking false 不會阻塞但是會報錯 setattr sk,callback func url func 1 try 阻塞,非阻塞報錯,捕捉錯誤 sk.connect url func 0 80 except blockingioerror as e pass while t...

非同步非阻塞

首先討論下使用事件驅動,非同步程式設計的優點 充分利用了系統資源,執行 無須阻塞等待某種操作完成,有限的資源可以用於其他的任務。其非常適合於後端的網路服務程式設計。在伺服器開發中,併發的請求處理是個大問題,阻塞式的函式會導致資源浪費和時間延遲。通過事件註冊 非同步函式,開發人員可以提高資源的利用率,...

阻塞,非阻塞,非同步,同步

之前一直對這個概念理不太清楚,今天看到一篇文章感覺不錯 本文 老張愛喝茶,廢話不說,煮開水。出場人物 老張,水壺兩把 普通 水壺,簡稱水壺 會響的水壺,簡稱響水壺 1 老張把水壺放到火上,立等水開。同步阻塞 老張覺得自己有點傻 2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。同步非阻...