Limita il parallelismo
Usa una coda lato client con un limite e invia ogni processo tramite una normale richiesta compatibile. In questo modo controlli il carico senza presupporre un endpoint batch del server.
La modalità batch di un servizio è un contratto API separato: usa il relativo percorso e il relativo corpo solo dopo che è stata pubblicata nelle impostazioni dell'account o nella specifica.
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;
}Controlla la coda
- Rendi l'ID interno di un processo deterministico e univoco nell'ambito di un'esecuzione.
- Dividi un insieme troppo grande in gruppi gestibili.
- Mantieni distinto l'errore di un elemento da quello dell'intera coda.
Raccogli i risultati
Collega un risultato a un ID interno e conserva lo stato di ogni processo.
Non riprovare automaticamente tutti i processi: riprova solo gli errori temporanei dopo aver verificato l'idempotenza.