ジョブの再試行と解決
目的: 非同期ジョブを明示的に操作し、障害状態を決定的に処理します。
UI フロー
- UI には、アカウントごとのキューとタスクのステータスが表示されます。
- 失敗またはスタックした場合、ユーザーはジョブの詳細を開きます。
- UI では
Trigger、Retry、およびResolveが許可されます。 - UI は
last_error_codeとlast_error_detailを強調表示します。 - UI は、ジョブのアクション後にタスクのステータスを更新します。
クライアント ライブラリ フロー
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,
});
HTTP/カールフロー
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"}'
エラー分類の方向
- ワーカーは、次のカテゴリに分類された
last_error_code値を記録するようになりました。- 一時的な接続
- 認証
- 認可
- 構成
- ペイロードの検証
- 見つかりません