Одна конечная точка FastAPI содержит логику, выполнение которой занимает около минуты.
Другая — это конечная точка SSE, которая использует sse-starlette EventSourceResponse.
Оба метода являются асинхронными.
Пример
Код: Выделить всё
async def report_sse():
while True:
global status_changed
if status_changed:
status_changed = False
yield f'status was changed'
await sleep(1)
yield " "
@app.get("/sse")
async def sse():
return EventSourceResponse(report_sse())
Код: Выделить всё
@app.post("/heavy")
async def heavy_endpoint():
# some long running code here
Может ли кто-нибудь привести аналогичный пример или рассказать, как я могу ее решить?
Я пытался использовать очередь и потоки для тяжелой конечной точки
Подробнее здесь: https://stackoverflow.com/questions/792 ... responsive