FastAPI 프레임워크를 사용하여 효율적인 비동기 작업 애플리케이션 구축
소개:
현대 웹 애플리케이션에서 비동기 작업은 이메일 보내기, 보고서 생성, 타사 API 호출 등과 같은 매우 일반적인 요구 사항입니다. 기존의 동기화 처리 방법은 메인 스레드를 차단하여 사용자가 너무 오래 기다리게 만듭니다. 애플리케이션 성능과 사용자 경험을 향상시키기 위해 비동기 작업을 사용하여 이러한 시간 소모적인 작업을 처리할 수 있습니다. 이 기사에서는 FastAPI 프레임워크를 사용하여 효율적인 비동기 작업 애플리케이션을 구축하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
1. FastAPI 프레임워크 소개
FastAPI는 빠르고 고성능을 결합한 Python 기반의 최신 웹 프레임워크입니다. FastAPI는 요청의 비동기 처리를 사용하고 비동기 작업을 사용하여 애플리케이션 응답 속도와 처리량을 향상시킵니다. 동시에 FastAPI는 자동으로 API 문서 생성, 요청 매개변수 확인, 요청 및 응답 처리 등의 기능을 제공하여 개발 작업을 크게 단순화합니다.
2. 비동기 작업 애플리케이션 만들기
pip install fastapi pip install aiohttp
샘플 코드는 다음과 같습니다.
import asyncio async def send_email(email: str, content: str): # 模拟发送邮件的异步操作 await asyncio.sleep(3) print(f"向邮箱 {email} 发送邮件:{content}")
샘플 코드는 다음과 같습니다.
from fastapi import FastAPI import asyncio app = FastAPI() @app.post("/send-email") async def handle_send_email(email: str, content: str): # 创建一个异步任务 task = asyncio.create_task(send_email(email, content)) return {"message": "异步任务已启动"}
위 코드에서는 @app.post
데코레이터를 사용하여 요청이 도착하면 를 수락하는 경로를 정의합니다. handler_send_email
함수가 실행됩니다. 함수에서 비동기 작업 task
를 생성하고 프롬프트 메시지를 반환합니다. @app.post
装饰器定义一个接受POST请求的路由,当请求到达时,将会执行handle_send_email
函数。在函数中,我们创建一个异步任务task
,并返回一个提示信息。
uvicorn main:app --reload
其中,main
为保存FastAPI应用的Python文件,app
为FastAPI应用的实例对象。--reload
选项表示当代码发生变化时,应用自动重载。
三、测试异步任务应用
现在我们可以使用任意的HTTP工具(如curl、Postman等)向/send-email
마지막으로 다음 명령을 사용하여 FastAPI 애플리케이션을 실행합니다.
POST /send-email HTTP/1.1 Host: localhost:8000 Content-Type: application/json { "email": "example@example.com", "content": "Hello, World!" }
main
은 FastAPI 애플리케이션, app
은 FastAPI 애플리케이션의 인스턴스 객체입니다. --reload
옵션은 코드가 변경되면 애플리케이션이 자동으로 다시 로드됨을 나타냅니다.
3. 비동기 작업 애플리케이션 테스트
/send-email
인터페이스에 POST 요청을 보내 비동기 작업을 테스트할 수 있습니다. 임무 신청.
샘플 요청은 다음과 같습니다.
위 내용은 FastAPI 프레임워크를 사용하여 효율적인 비동기 작업 애플리케이션 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!