隐藏页面特效

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 @   我在路上回头看  阅读(233)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-02-28 方法指针或非指针类型接收器
点击右上角即可分享
微信分享提示