重試時間工作流程
指數退避與抖動:重試時間及期限界線
使用計算器比較重試政策的時間範圍。模型不會發送或排程請求,也不預測請求是否成功。
內容更新: · 維護者:Hung Chi-Hsueh · 修正回報
計算重試次數與每次等待
初始請求從 t=0 開始。N 次重試最多有 N+1 次請求,包含初始請求;重試 0 次時只有一次初始請求,沒有重試等待。第 n 次重試從 n=1 起算,其基準 d 為 min(cap, base × multiplier^(n−1));cap 限制的是此基準。
套用 Retry-After 之前,None 範圍為 [d, d],Full 為 [0, d],Equal 為 [d/2, d]。這些是可能的等待範圍,不是實測時間或成功率預測。計算器保留半毫秒數值。
納入請求耗時與期限
可選填每次請求的固定耗時。每次重試的開始時間包含此前所有請求的耗時與等待;例如第一次重試在一次請求耗時加上該次等待後開始。模型假設每次耗時相同,不測量網路或處理時間。
假設每次重試都依此模型發生,開始時間小於或等於期限就算在期限內。若模型的最晚開始時間仍不晚於期限,則在期限內;若只有最早時間不晚於期限,則可能趕不上;若最早時間也晚於期限,則一定趕不上。此分類只判斷模型開始時間,不判斷重試是否發生、完成或成功。
此模型以 Retry-After 作為等待下限
提供 Retry-After 時,請輸入非負整數秒。此計算器假設每次重試等待至少這麼久,即使它超過退避 cap;抖動範圍兩端會依需要提高到此下限。這是計算器的政策,不代表所有用戶端或服務都如此處理。
RFC 9110 也允許 HTTP-date;本計算器不解析該格式。請使用獨立的 Retry-After 計算器,指定參考時間計算等待,再將整數秒輸入此處。
輸入上限與適用範圍
產品限制如下:base 1–600,000 ms、multiplier 1–10、cap 1–3,600,000 ms、重試 0–30 次、固定請求耗時 0–600,000 ms、Retry-After 0–86,400 秒、期限 0–3,000,000,000 ms。這些是計算器限制,不是協定規則。
輸入只留在本機頁面/Worker 記憶體,不持久化、不上傳。工具不發送或排程請求、不判斷哪些狀態碼可重試,也不保證冪等性。實作重試前,請查閱目標服務的政策,並確認重複操作是否安全。
Base:500 ms
Multiplier:2
Cap:30,000 ms
重試:3 次;抖動:None
等待:500、1,000、2,000 ms
總等待:3,500 ms
最多 4 次請求資料可信度