国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

flask異步處理耗時任務(wù) Flask怎么實現(xiàn)異步任務(wù)處理方式呢?

Flask怎么實現(xiàn)異步任務(wù)處理方式呢?有時候一次 http 請求的處理時間過長,而其中一部分代碼又是不必同步執(zhí)行的。我們就可以用以下函數(shù)把任務(wù)拋出去異步執(zhí)行,同時接口立即返回。這個函數(shù)具體的執(zhí)行過程是

Flask怎么實現(xiàn)異步任務(wù)處理方式呢?

有時候一次 http 請求的處理時間過長,而其中一部分代碼又是不必同步執(zhí)行的。我們就可以用以下函數(shù)把任務(wù)拋出去異步執(zhí)行,同時接口立即返回。

這個函數(shù)具體的執(zhí)行過程是:

調(diào)用時復(fù)制當(dāng)前請求上下文 (request)

原請求立即繼續(xù)執(zhí)行

func?被執(zhí)行時,復(fù)制的 request 會被 push,從此這就可以被認為是一個全新的任務(wù)

須注意的是,因為復(fù)制的請求是被 push 進來的,所以?before_request?的信號不會被觸發(fā)。但之后的?after_request?和?tear_doen_request?還會有。以及,因為只復(fù)制了 request,其他的上下文變量,如?g,是沒有被復(fù)制的。

lang:python

import gevent

from flask import copy_current_request_context

def i_have_a_dream(func, *args, **kwargs):

"""

異步任務(wù)處理。本函數(shù)會立即返回,并使用 gevent 的新線程執(zhí)行 func 函數(shù)(帶 request 上下文)。

"""

return gevent.spawn(copy_current_request_context(func), *args, **kwargs)