ITPub博客

首页 > 数据库 > 数据库开发技术 > 深入FastAPI异步编程-之并发编程(13)-纠错-修改基于aiojobs库结合aiojobs的和FastAPI框架的示例

深入FastAPI异步编程-之并发编程(13)-纠错-修改基于aiojobs库结合aiojobs的和FastAPI框架的示例

原创 数据库开发技术 作者:程序员小钟同学 时间:2024-01-22 00:00:00 0 删除 编辑

前言

前面写着关于aiojobs的和FastAPI框架使用的时候搞错了,示例给的是使用了pyee去了!!!!非常抱歉,以下是结合aiojobs的和FastAPI框架实现类似Background Tasks的效果纠正示例代码:

import aiojobs
from fastapi import FastAPI, Request
import asyncio
import time

from pyee import AsyncIOEventEmitter

from KKKK import contextIOOI

app = FastAPI()


async def coro(timeout):
    """
    异步函数:等待一段时间

    参数:
    - timeout (float): 等待的时长
    返回值:
    无
    "
""
    await asyncio.sleep(timeout)
    print("输出!!!")
@app.get("/")
async def async_endpoint(request: Request):
    # 创建调度器Scheduler
    scheduler = aiojobs.Scheduler()
    for i in range(100):
        # 生成任务
        await scheduler.spawn(coro(5))
    return {"message": "ok"}

@app.get("/1")
async def async_endpoint(request: Request):
    # 创建事件发射器实例
    return  contextIOOI.get_local('key2')  # 输出: 'value2'



# 运行 FastAPI 应用程序
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8200)

运行代码后,你会发现,我们接口可以很快的相应返回,但是我们此时也在后台并发的执行了100多个任务!!!!这种方式也可以得到类似的后台任务执行的操作。

文笔有限,如有笔误或错误!欢迎批评指正!感谢各位大佬!有什么问题也可以随时交流!

结尾

END

简书:https://www.jianshu.com/u/d6960089b087

掘金:https://juejin.cn/user/2963939079225608

公众号:微信搜【程序员小钟同学】

新开QQ群号,欢迎随时加群交流,相互学习。QQ群号:247491107

小钟同学 | 文 【欢迎一起学习交流】| QQ:308711822


原文作者:程序员小钟同学;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-02-20

  • 博文量
    224
  • 访问量
    111682