Avgrens parallellitet
Bruk en avgrenset kø på klientsiden, og send hver jobb gjennom en vanlig kompatibel forespørsel. Dette styrer belastningen uten å forutsette et batchendepunkt på serveren.
En batchmodus i en tjeneste er en egen API-kontrakt: bruk ruten og forespørselskroppen for denne modusen først etter at de er publisert i kontoinnstillingene eller spesifikasjonen.
async function runWithLimit(items, limit, work) {
const results = [];
for (let offset = 0; offset < items.length; offset += limit) {
const group = items.slice(offset, offset + limit);
results.push(...await Promise.all(group.map(work)));
}
return results;
}Styr køen
- Gjør en intern jobb-ID deterministisk og unik innenfor én kjøring.
- Del et for stort sett inn i håndterbare grupper.
- Hold feil i ett element atskilt fra feil i hele køen.
Samle inn resultater
Knytt et resultat til en intern ID, og behold statusen for hver jobb.
Ikke prøv alle jobber på nytt automatisk: prøv bare midlertidige feil på nytt etter å ha kontrollert idempotens.