作业重试和解决方案
目的:显式操作异步作业并确定性地处理故障状态。
用户界面流程
- 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/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"}'
错误分类方向
- 工作人员现在记录分类
last_error_code值:- 瞬时连接
- 身份验证
- 授权
- 配置
- 有效负载验证
- 未找到