Study
FastAPI

Background Tasks

Penjelasan

BackgroundTasks memungkinkan kamu menjalankan fungsi (mis. mengirim email notifikasi) setelah response dikirim ke client, jadi client tidak perlu menunggu proses yang lama selesai. Ini berbeda dari task queue seperti Celery — cocok untuk tugas ringan, bukan job berat/lama yang butuh retry dan monitoring.

Contoh Konsep

from fastapi import BackgroundTasks

def kirim_notifikasi(email: str, pesan: str):
    print(f'Mengirim ke {email}: {pesan}')

@app.post('/catatan')
def buat_catatan(catatan: CatatanIn, background_tasks: BackgroundTasks):
    background_tasks.add_task(kirim_notifikasi, '[email protected]', 'Catatan baru dibuat')
    return {'pesan': 'dibuat'}

Praktikum

Tambahkan BackgroundTasks ke endpoint buat_catatan, panggil kirim_notifikasi lewat background_tasks.add_task().

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Untuk tugas berat (proses video, kirim ribuan email) pakai task queue sungguhan seperti Celery atau RQ — BackgroundTasks berjalan di proses yang sama, jadi tetap bisa memperlambat server kalau tugasnya terlalu berat.