首页 > 其他分享 >fastapi 异步应用

fastapi 异步应用

时间:2023-06-07 16:11:17浏览次数:44  
标签:异步 str fastapi start 线程 应用 time new loop

# 定义一个专门创建事件循环loop的函数,在另一个线程中启动它
def start_loop(loop):
    asyncio.set_event_loop(loop)
    loop.run_forever()


@app.get("/addr")
def index(adcode: str = None, address: str = None, level: str = None):
    import time
    message = {"code": 500, "msg": "failed", "data": ''}
    if adcode and address and level:
        start_time = time.time()
        new_loop = asyncio.new_event_loop()  # 在当前线程下创建事件循环,(未启用),在start_loop里面启动它
        t = threading.Thread(target=start_loop, args=(new_loop,))  # 通过当前线程开启新的线程去启动事件循环
        t.start()
        coroutine1 = run_rel(address, adcode, str(level))
        ret = asyncio.run_coroutine_threadsafe(coroutine1, new_loop)  # 这几个是关键,代表在新线程中事件循环不断“游走”执行
        print(ret.result())
        print("总耗时: ", time.time() - start_time)
        message.update({"code": 200, "msg": "success", "data": ret.result()})
    return message

  

标签:异步,str,fastapi,start,线程,应用,time,new,loop
From: https://www.cnblogs.com/zzay/p/17463583.html

相关文章

  • GaussDB(DWS)查询过滤器原理与应用
    摘要:GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔离反复被终止的查询,防止烂SQL再次执行。本文分享自华为云社区《GaussDB(DWS)查询过滤器原理与应用》,作者:门前一棵葡萄树。一、概述GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔离反复被终止的查询,防止......
  • 关于安科瑞智能通讯管理机在能源计量行业的应用-安科瑞张田田
    建筑能耗应用场景描述在电力监控系统能源计量中经常会运用到通信管理机,通信管理机也称作DPU,其具有多个下行通讯接口及一个或者多个上行网络接口,相当于前置机,即监控计算机,用于将一个变电所内所有的智能监控/保护装置的通讯数据整理汇总后,实时传送至上级主站系统(后台监控中心系统和DCS......
  • 黑盒测试在软件测试中的应用和实践
    黑盒测试是软件测试中常用的一种测试方法,它对于测试人员来说具有很强的实用性。本文将介绍黑盒测试在软件测试中的应用和实践。一、什么是黑盒测试黑盒测试也称为功能测试,它是一种测试方法,不考虑程序内部结构,只关注输入输出以及程序的功能是否满足需求。黑盒测试的目的是验证程序是......
  • 实验六 turtle绘图与python库应用编程体验
    '''task1_1.py'''fromturtleimport*defmove(x,y):penup()goto(x,y)pendown()defdraw(n,size=100):foriinrange(n):fd(size)left(360/n)defmain():pensize(2)pencolor('red&#......
  • 实验五 文件应用编程
    task6withopen('data6.csv','r',encoding='gbk')asf:data=f.readlines()data.remove('原始数据\n')data0=[]foriindata:ifi[-1]=='\n':i=i[:-1]data0.append(float(i))print('原始......
  • 【体验有奖】玩转 AIGC,函数计算 x 通义千问预体验,一键部署 AI 应用赢 Airpods
    玩转AIGC,基于函数计算FC部署通义千问预体验从文字生成到图片生成,AIGC的创造力让人惊叹,更多的人开始探索如何使用AI提高生产效率,激发更多创作潜能,然而在实际应用中,AI技术的高门槛让很多人望而却步,普通开发者和零编程经验的人是否也能简单快速地部署一个AI模型应用,享受到科......
  • 深度学习应用篇-计算机视觉-图像分类[2]:LeNet、AlexNet、VGG、GoogleNet、DarkNet模型
    深度学习应用篇-计算机视觉-图像分类[2]:LeNet、AlexNet、VGG、GoogleNet、DarkNet模型结构、实现、模型特点详细介绍1.LeNet(1998)LeNet是最早的卷积神经网络之一<sup>[1]</sup>,其被提出用于识别手写数字和机器印刷字符。1998年,YannLeCun第一次将LeNet卷积神经网络应用到图像分类......
  • 深度学习应用篇-计算机视觉-图像分类[2]:LeNet、AlexNet、VGG、GoogleNet、DarkNet模型
    深度学习应用篇-计算机视觉-图像分类[2]:LeNet、AlexNet、VGG、GoogleNet、DarkNet模型结构、实现、模型特点详细介绍1.LeNet(1998)LeNet是最早的卷积神经网络之一[1],其被提出用于识别手写数字和机器印刷字符。1998年,YannLeCun第一次将LeNet卷积神经网络应用到图像分类上,在手写数......
  • STM32F429 Discovery开发板应用:实现SPI-SD Card文件写入(搭载FatFS文件系统)
    MCU:STM32F429ZIT6开发环境:STM32CubeMX+MDK5 外购了一个SPI接口的SDCard模块,想要实现SD卡存储数据的功能。首先需要打开STM32CubeMX工具。输入开发板MCU对应型号,找到开发板对应封装的MCU型号,双击打开(图中第三)。 此时,双击完后会关闭此界面,然后打开一个新界面。 ......
  • 异步线程解决seata事务1000问题
    原因:seata1.5.0以下版本,事务执行sql超过1000,会抛出异常。解决方案:部分sql使用异步线程。实现方式:1、初始化异步线程池@Configuration@EnableAsyncpublicclassThreadAsyncConfigimplementsAsyncConfigurer{/***线程配置参数*/@Autowiredpr......