flask請(qǐng)求上下文 Flask怎么實(shí)現(xiàn)異步任務(wù)處理方式呢?
Flask怎么實(shí)現(xiàn)異步任務(wù)處理方式呢?有時(shí)HTTP請(qǐng)求的處理時(shí)間太長(zhǎng),部分代碼不需要同步執(zhí)行。我們可以使用下面的函數(shù)來拋出任務(wù)以異步執(zhí)行,接口將立即返回。此函數(shù)的具體執(zhí)行過程如下:調(diào)用時(shí)復(fù)制當(dāng)前請(qǐng)求上
Flask怎么實(shí)現(xiàn)異步任務(wù)處理方式呢?
有時(shí)HTTP請(qǐng)求的處理時(shí)間太長(zhǎng),部分代碼不需要同步執(zhí)行。我們可以使用下面的函數(shù)來拋出任務(wù)以異步執(zhí)行,接口將立即返回。
此函數(shù)的具體執(zhí)行過程如下:
調(diào)用時(shí)復(fù)制當(dāng)前請(qǐng)求上下文(request)
原始請(qǐng)求將立即繼續(xù)執(zhí)行
執(zhí)行func時(shí),將推送復(fù)制的請(qǐng)求。從此以后,它可以被視為一個(gè)新任務(wù)
需要注意的是,由于復(fù)制的請(qǐng)求被推入,所以“before”請(qǐng)求信號(hào)不會(huì)被觸發(fā)。但在那之后,在“請(qǐng)求”和“撕裂”之后,會(huì)有更多的請(qǐng)求。而且,因?yàn)橹粡?fù)制了請(qǐng)求,所以不會(huì)復(fù)制其他上下文變量,例如﹣g。
朗:蟒蛇
import gevent
from flask import copy current request context
def i have a Dream(func,*args,**kwargs):
“”“
異步任務(wù)處理。此函數(shù)立即返回,并使用gevent的新線程執(zhí)行func函數(shù)(使用請(qǐng)求上下文)。
“”“
返回gevent.spawn文件(復(fù)制當(dāng)前請(qǐng)求上下文(func),*args,**kwargs)
有前端基礎(chǔ),學(xué)過delphi,現(xiàn)想學(xué)python flask,需要多長(zhǎng)時(shí)間可以掌握?
感謝您的邀請(qǐng)。!如果你有其他語言的基礎(chǔ),學(xué)習(xí)另一種編程語言不會(huì)太難。如果你想學(xué)習(xí)Python Flash,那就是做Python Web開發(fā),你必須先為Python打下堅(jiān)實(shí)的基礎(chǔ),這需要大約兩個(gè)星期的時(shí)間。你還需要學(xué)習(xí)HTML,CSS和JS。最后,您需要回到flash并了解數(shù)據(jù)庫,比如mysql??倳r(shí)間超過一個(gè)月。
希望我能幫到你,謝謝!