Ohraničte paralelizmus
Použite ohraničený front na strane klienta a každú úlohu odošlite prostredníctvom bežnej kompatibilnej požiadavky. Takto riadite zaťaženie bez predpokladu dávkového koncového bodu servera.
Dávkový režim služby je samostatná zmluva API: jeho trasu a telo použite až po zverejnení v nastaveniach účtu alebo v špecifikácii.
Ohraničený paralelizmus riadený klientom
typescript
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;
}Ovládajte front
- Zabezpečte, aby interné ID úlohy bolo deterministické a v rámci jedného spustenia jedinečné.
- Priveľkú množinu rozdeľte na zvládnuteľné skupiny.
- Zlyhanie jednej položky oddeľte od zlyhania celého frontu.
Zhromaždite výsledky
Prepojte výsledok s interným ID a uchovávajte stav každej úlohy.
Všetky úlohy automaticky neopakujte: po kontrole idempotentnosti opakujte iba dočasné zlyhania.