백그라운드 작업
Starlette에는 처리 중인 백그라운드 작업에 대한 코드가 포함되어 있습니다. BackgroundTask 수업.
백그라운드 작업은 응답에 첨부되어야 하며 응답이 전송된 후에만 실행되어야 합니다.
배경 작업
응답에 단일 백그라운드 작업을 추가하는 데 사용됩니다.
서명: BackgroundTask(func, *args, **kwargs)
Starlette. 응용 프로그램이 Starlette에서 가져옵니다.
Starlette.에서 JSONResponse 가져오기
별자리에서. 라우팅 가져오기 경로
스타렛에서 백그라운드 작업 가져오기
...
비동기 def 가입(요청):
데이터 = 요청을 기다립니다.json ()
사용자 이름 = 데이터 ['사용자 이름']
이메일 = 데이터 ['이메일']
작업 = 백그라운드 작업 (send__, to_ = 이메일)
메시지 = {'status': 'Signup successful'}
JSON 응답 반환(메시지, 배경 = 작업)
Async def send_n_mail(to_):
...
경로 = [
...
경로('/사용자/가입', 엔드포인트 = 가입, 방법 = ['POST'])
]
앱=스타렛(루트=루트)
배경 작업
응답에 여러 백그라운드 작업을 추가하는 데 사용됩니다.
서명: BackgroundTasks(tasks=[])
Starlette. 응용 프로그램이 Starlette에서 가져옵니다.
Starlette.에서 JSONResponse 가져오기
스타렛에서 백그라운드 작업 가져오기
비동기 def 가입(요청):
데이터 = 요청을 기다립니다.json ()
사용자 이름 = 데이터 ['사용자 이름']
이메일 = 데이터 ['이메일']
작업 = 백그라운드 작업()
작업. 추가 작업 (send__, to_=)
Tasks.add_작업(send_admin_, username = username)
메시지 = {'status': 'Signup successful'}
JSON 응답 반환(메시지, 배경 = 작업)
Async def send_n_mail(to_):
...
Async def send_admin_(사용자 이름):
...
경로 = [
경로('/사용자/가입', 엔드포인트 = 가입, 방법 = ['POST'])
]
앱=스타렛(루트=루트)
!!! 중요한 것은 작업이 순서대로 실행된다는 것입니다. 작업 중 하나가 예외를 적용하면 후속 작업을 실행할 기회가 없습니다.