Lacak Hasil dan Tangani Kegagalan
Periksa status tugas dan ulangi saat terjadi error.
Lacak Hasil dan Tangani Kegagalan adalah pelajaran Flask Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Flask Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Flask Academy mencakup 4 pelajaran total.
Pegangan AsyncResult
Saat memasukkan tugas ke antrean, Anda mendapatkan AsyncResult. Simpan id-nya agar Anda dapat memeriksa pekerjaan tersebut dari permintaan berikutnya.
job = add.delay(2, 3)
ticket = job.idPeriksa Status
Setiap pekerjaan memiliki status seperti PENDING, STARTED, SUCCESS, atau FAILURE. Anda dapat membacanya untuk mengetahui apakah pekerjaan tersebut sudah selesai.
res = add.AsyncResult(ticket)
print(res.state)Baca Hasil
Setelah suatu pekerjaan berhasil, nilai yang dikembalikannya disimpan di backend. Akses nilai tersebut melalui result pada AsyncResult.
if res.ready():
print(res.result)Lakukan Polling, Jangan Memblokir
Di tampilan web, jangan pernah memanggil get() lalu menunggu. Sebagai gantinya, kembalikan id task dan biarkan client melakukan polling ke endpoint status.
Endpoint Status
Sediakan route yang menerima id task lalu mengembalikan status dan hasilnya. Frontend mengaksesnya setiap beberapa detik sampai pekerjaan selesai.
@app.get("/status/<tid>")
def status(tid):
r = add.AsyncResult(tid)
return {"state": r.state}Kegagalan Bisa Terjadi
Panggilan eksternal dapat mengalami waktu habis dan kode dapat menimbulkan error. Saat task gagal, Celery menandainya sebagai FAILURE dan mencatat pengecualiannya.
Percobaan Ulang Otomatis
Buat task mencoba kembali secara otomatis saat terjadi error sementara. Atur max_retries dan jeda agar panggilan yang tidak stabil mendapat beberapa kesempatan tambahan.
@celery.task(bind=True, max_retries=3)
def fetch(self):
...Berikan Jeda yang Makin Lama
Mencoba kembali secara langsung dapat membebani layanan yang sedang bermasalah. Gunakan jeda yang makin lama, yang disebut backoff, agar setiap percobaan ulang menunggu lebih lama.
Picu Percobaan Ulang
Di dalam task, tangkap error lalu panggil self.retry. Celery memasukkan kembali pekerjaan ke antrean dan menghitungnya sebagai bagian dari max_retries.
try:
do_work()
except Exception as e:
self.retry(exc=e, countdown=5)Atur Batas Waktu
Task yang macet tidak boleh berjalan selamanya. Batas waktu menghentikan task yang berjalan melewatinya, sehingga worker dapat mengerjakan pekerjaan lain.
Kedaluwarsa Hasil
Hasil yang disimpan memerlukan ruang. Celery menghapus setelah kedaluwarsa hasil lama setelah beberapa waktu, jadi rancang client agar segera mengambilnya. ⏱️
Pemeriksaan Singkat
Task Anda memanggil API eksternal yang tidak stabil.
Rangkuman
Lacak pekerjaan berdasarkan id, lakukan polling ke endpoint status untuk mendapatkan status dan hasil, lalu tangani kegagalan dengan percobaan ulang, backoff, dan batas waktu. ✅
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Lacak Hasil dan Tangani Kegagalan” gratis?
Ya — teks lengkap “Lacak Hasil dan Tangani Kegagalan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Flask Academy, upgrade ke CoddyKit PRO. Kursus Flask Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Lacak Hasil dan Tangani Kegagalan”?
Periksa status tugas dan ulangi saat terjadi error. Kamu berlatih Flask Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Flask Academy?
Tidak diperlukan pengalaman sebelumnya. Flask Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Lacak Hasil dan Tangani Kegagalan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Flask Academy ini?
Ya. Setiap pelajaran Flask Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengapa Pekerjaan Dipindahkan dari Request
- Hubungkan Celery ke Pabrik Aplikasi
- Tentukan dan Panggil Tugas
- Lacak Hasil dan Tangani Kegagalan