Sobes.tech
Junior — Middle
71

Могли бы вы объяснить, что такое BackgroundTasks в FastAPI и как они используются для выполнения задач в фоновом режиме?

Companies where asked
РЕСО-Лизинг
Оптимакрос

Answer from AI

sobes.tech AI

В FastAPI BackgroundTasks — это механизм для выполнения задач в фоновом режиме после того, как ответ уже отправлен клиенту. Это полезно, когда нужно выполнить какую-то длительную операцию (например, отправку email, логирование, обновление базы), но не задерживать ответ.

Использование:

  • Включаете BackgroundTasks как параметр в функцию обработчика.
  • Добавляете задачи через метод add_task, передавая функцию и её аргументы.

Пример:

from fastapi import FastAPI, BackgroundTasks

app = FastAPI()

def write_log(message: str):
    with open("log.txt", "a") as f:
        f.write(message + "\n")

@app.post("/send")
async def send_message(background_tasks: BackgroundTasks):
    background_tasks.add_task(write_log, "Message sent")
    return {"message": "Request received"}

В этом примере функция write_log будет выполнена после отправки ответа клиенту, не блокируя основной поток.