Lewati ke isi

Tugas Latar Belakang

Starlette berisi kelas BackgroundTask untuk tugas latar belakang dalam proses.

Tugas latar belakang harus dilampirkan pada respons dan di jalankan hanya setelah respons di kirim.

tugas latar belakang

Digunakan untuk menambahkan satu tugas latar belakang ke respons.

Tanda tangan: BackgroundTask(func, *args, **kwargs)

Starlette.application diimpor dari Starlette
Dari pemula. Tanggapan impor JSONResponse
Dari starlette. rute impor routing
Latar Belakang Impor tugas dari starlette.background


...

Async def mendaftar (permintaan):
    Data = menunggu request.json ()
    Nama pengguna = data ['nama pengguna']
    Email = data ['email']
    Tugas = Latar Belakang Tugas (kirim _ selamat datang _ email, ke _ alamat = email)
    Pesan = {'status': 'Signup successful'}
    Kembalikan JSONResponse (pesan, latar belakang = tugas)

Async def send _ welcome _ email (ke _ address):
    ...


Rute = [
    ...
    Rute ('/ user / signup', endpoint = signup, metode = ['POST'])
]

Aplikasi = Starlette (rute = rute)

tugas latar belakang

Digunakan untuk menambahkan beberapa tugas latar belakang ke respons.

Tanda tangan: BackgroundTasks(tasks=[])

Starlette.application diimpor dari Starlette
Dari pemula. Tanggapan impor JSONResponse
Latar Belakang Impor dari starlette.background

Async def mendaftar (permintaan):
    Data = menunggu request.json ()
    Nama pengguna = data ['nama pengguna']
    Email = data ['email']
    Tugas = Tugas Latar Belakang ()
    Tugas. add _ task (kirim _ welcome _ email, ke _ address = email)
    Tasks.add _ task (kirim _ admin _ notifikasi, nama pengguna = nama pengguna)
    Pesan = {'status': 'Signup successful'}
    Kembalikan JSONResponse (pesan, latar belakang = tugas)

Async def send _ welcome _ email (ke _ address):
    ...

Async def send _ admin _ notification (nama pengguna):
    ...

Rute = [
    Rute ('/ user / signup', endpoint = signup, metode = ['POST'])
]

Aplikasi = Starlette (rute = rute)

!!! Penting, tugas di jalankan secara berurutan. Jika salah satu tugas memberikan pengecualian, tugas selanjutnya tidak akan memiliki kesempatan untuk di jalankan.