IM
ID
Beranda dokumentasi
Menu
Panduan

Percobaan Ulang dan Resolusi Pekerjaan

mengoperasikan pekerjaan asinkron secara eksplisit dan menangani status kegagalan secara deterministik.

inbox-manager client-flow

Percobaan Ulang dan Resolusi Pekerjaan

Tujuan: mengoperasikan tugas asinkron secara eksplisit dan menangani status kegagalan secara deterministik.

Aliran UI

  1. UI menunjukkan status antrian dan tugas per akun.
  2. Pengguna membuka detail pekerjaan ketika gagal atau macet.
  3. UI mengizinkan Trigger, Retry, dan Resolve.
  4. Sorotan UI last_error_code dan last_error_detail.
  5. 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_code yang dikategorikan untuk:
    • konektivitas sementara
    • otentikasi
    • otorisasi
    • konfigurasi
    • validasi muatan
    • tidak ditemukan