Python 异步任务如何实现提前返回_python 异步可以跳过耗时运算先给用户返回文字吗

45 阅读3分钟

因此理论上该接口可以在耗时操作执行结束前返回。本文中使用多线程后台运行耗时操作,主线程提前返回,实现接口的提前返回。

此外,还尝试使用协程实现,经验证,协程适用于多任务并发处理,遇到耗时操作时自动切换任务,可以缩短多任务总的执行用时,而无法缩短单任务的执行用时,无法实现提前返回,因此不适用该场景。
在这里插入图片描述

1 同步任务

如下所示,定义任务,模拟耗时操作。

Python学习交流Q群:906715085###
import time

def task():   
 print("task start")  
   print("sleep...")   
    time.sleep(10)   
     print("task end")

如下所示,main 函数中执行任务,return true 用于模拟接口的返回。

如果最后执行 print(“task_result={}”.format®) 表明是同步执行,否则是异步执行。

def main():    
print("main start")   
 task()    
 print("main end")   
  return True

if __name__ == '\_\_main\_\_':   
 r = main()    
print("task\_result={}".format(r))

执行结果如下所示,表明是同步执行。

main start
task start
sleep...
task end
main end
task_result=True

对于接口来说,响应时间是非常重要的性能指标,因此可以通过异步执行实现接口的提前返回,进而降低接口响应时间。

2 异步任务

本文中提到的异步执行指的是后台运行某些代码或功能,不阻塞主程序。

异步执行的常规实现方式是使用多线程/多进程。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

了解详情:docs.qq.com/doc/DSnl3ZG…