Kodeeksempel: håndter 429 med back-off
Håndter 429 korrekt
Ved rate limit (429) skal du læse Retry-After og vente. Genforsøg med eksponentiel back-off.
JavaScript
JavaScript
async function getJson(url, key, tries = 5) {
for (let i = 0; i < tries; i++) {
const res = await fetch(url, { headers: { Authorization: "Bearer " + key } });
if (res.status !== 429) return res;
const retry = Number(res.headers.get("Retry-After")) || 2 ** i;
await new Promise((r) => setTimeout(r, retry * 1000));
}
throw new Error("Rate limited efter flere forsøg");
}Python
Python
import time, requests
def get_json(url, key, tries=5):
for i in range(tries):
r = requests.get(url, headers={"Authorization": f"Bearer {key}"})
if r.status_code != 429:
return r
wait = int(r.headers.get("Retry-After", 2 ** i))
time.sleep(wait)
raise RuntimeError("Rate limited efter flere forsøg")Er 429'en derimod en månedskvote (type: quota_exceeded), hjælper back-off IKKE — slå overage til eller opgrader plan.Var dette nyttigt?
