Percobaan Ulang dan Resolusi Pekerjaan
Tujuan: mengoperasikan tugas asinkron secara eksplisit dan menangani status kegagalan secara deterministik.
Aliran UI
- UI menunjukkan status antrian dan tugas per akun.
- Pengguna membuka detail pekerjaan ketika gagal atau macet.
- UI mengizinkan
Trigger,Retry, danResolve. - Sorotan UI
last_error_codedanlast_error_detail. - UI menyegarkan status tugas setelah tindakan pekerjaan.
Alur Perpustakaan Klien
const jobs = await api.jobs.list(accountId, { limit: 50 });
const failed = jobs.data.filter((row) => row.failed_at);
for (const job of failed) {
await api.jobs.retry(job.id);
}
const inFlight = await api.jobs.list(accountId, {
q: "imap_sync_messages",
limit: 20,
});
Alur HTTP/curl
API_BASE_URL="https://api.inbox-manager.com"
curl -sS "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/jobs?limit=20&offset=0" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS -X POST "${API_BASE_URL}/api/jobs/${JOB_ID}/trigger" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{}'
curl -sS -X POST "${API_BASE_URL}/api/jobs/${JOB_ID}/retry" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{}'
curl -sS -X POST "${API_BASE_URL}/api/jobs/${JOB_ID}/resolve" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"note":"handled after provider maintenance window"}'
Arah Taksonomi Kesalahan
- Pekerja sekarang mencatat nilai
last_error_codeyang dikategorikan untuk:- konektivitas sementara
- otentikasi
- otorisasi
- konfigurasi
- validasi muatan
- tidak ditemukan