flask上下文管理流程 Flask怎么实现异步任务处理方式呢?

Flask怎么实现异步任务处理方式呢?有时HTTP请求的处理时间太长,部分代码不需要同步执行。我们可以使用下面的函数来抛出任务以异步执行,接口将立即返回。此函数的具体执行过程如下:调用时复制当前请求上

Flask怎么实现异步任务处理方式呢?

有时HTTP请求的处理时间太长,部分代码不需要同步执行。我们可以使用下面的函数来抛出任务以异步执行,接口将立即返回。

此函数的具体执行过程如下:

调用时复制当前请求上下文(request)

原始请求将立即继续执行

执行func时,将推送复制的请求。从此以后,它可以被视为一个新任务

需要注意的是,由于复制的请求被推入,所以“before”请求信号不会被触发。但在那之后,在“请求”和“撕裂”之后,会有更多的请求。而且,因为只复制了请求,所以不会复制其他上下文变量,例如﹣g。

朗:蟒蛇

import gevent

from flask import copy current request context

def i have a Dream(func,*args,**kwargs):

“”“

异步任务处理。此函数立即返回,并使用gevent的新线程执行func函数(使用请求上下文)。

“”“

返回gevent.spawn文件(复制当前请求上下文(func),*args,**kwargs)