隐藏页面特效

FastAPI系列:后台任务进程

注:后台任务应附加到响应中,并且仅在发送响应后运行

用于将单个后台任务添加到响应中

from fastapi import FastAPI from fastapi.responses import JSONResponse from starlette.background import BackgroundTask from pydantic import BaseModel app = FastAPI() class User(BaseModel): username: str email: str @app.get('/signup') async def signup(data: User): username = data.username email = data.email task = BackgroundTask(send_welcome_emil, username=username, to_address=email) message = {'status': 'Signup successful'} return JSONResponse(message, background=task) async def send_welcome_emil(username, to_address): print("模拟发送邮件::::") print('用户:', username) print('地址:', to_address) # 模拟发送邮件 import asyncio await asyncio.sleep(5) if __name__ == '__main__': import uvicorn uvicorn.run('background:app', host='0.0.0.0', port=8888, reload=True)

通过BackgroundTasks的add_task添加后台任务

from fastapi import BackgroundTasks, FastAPI # backgrounds.py from datetime import datetime # 记录用户行为 def audit_log_transaction(userID: str, message=""): with open("user_log.txt", mode="a") as f: content = f"user {userID} message {message} at {datetime.now()}" f.write(content) #user.py @router.post("/bgtask") def login(user: User, bg_task:BackgroundTasks): # 通过注入的形式就可以使用 if user: # 添加任务add_task bg_task.add_task(audit_log_transaction, userID=user.id, message="login") return jsonable_encoder(user)

__EOF__

本文作者404 Not Found
本文链接https://www.cnblogs.com/weiweivip666/p/18041319.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
posted @   我在路上回头看  阅读(237)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2022-02-28 方法指针或非指针类型接收器
点击右上角即可分享
微信分享提示