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().
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.