openaijamodel: gpt-5-mini-2025-08-07
Workflowsがリトライ時の遅延を関数で指定可能に
Key Points
- 動的な遅延関数対応
- エラー/attemptで適応的に待機
- 文字列/数値/Promiseを返せる
Summary
- Cloudflare Workflowsのステップリトライで、従来の固定遅延に加え動的な遅延関数(retries.delay)を渡せるようになりました。
- 遅延関数は({ ctx, error })を受け取り、ctx.attemptやエラー内容に基づいて次の遅延を計算できます。
- 返り値は期間文字列(例: "10 seconds")、数値、または期間を解決するPromiseを返せます。
await step.do("sync customer", {
retries: {
limit: 5,
delay: ({ ctx, error }) => {
if (error.message.includes("rate limit")) {
return `${ctx.attempt * 30} seconds`; // レート制限時は長めに待つ
}
return "10 seconds"; // 短いネットワークエラーは早めに再試行
}
}
}, async () => { await syncCustomer() });
Key Points
- 遅延をエラー種別(rate limitやネットワークエラー等)や試行回数に応じて適応可能。
- APIレスポンスの Retry-After ヘッダ等を解析して、ベンダー推奨の待機時間を反映できる。
- 外部のキューやスケジューラを使わず、Workflows内で再試行ロジックを簡潔に実装できる。
- JavaScript/TypeScriptで利用可能。ctx.attempt と error オブジェクトを利用して実装するのが基本パターン。