Οριοθετημένος παραλληλισμός
Χρησιμοποιήστε οριοθετημένη ουρά στην πλευρά του πελάτη και στείλτε κάθε εργασία μέσω ενός συνηθισμένου συμβατού αιτήματος. Έτσι ελέγχετε το φορτίο χωρίς να προϋποθέτετε τελικό σημείο μαζικής επεξεργασίας στον διακομιστή.
Η λειτουργία μαζικής επεξεργασίας υπηρεσίας αποτελεί ξεχωριστή σύμβαση API: χρησιμοποιήστε τη διαδρομή και το σώμα της μόνο αφού δημοσιευτούν στις ρυθμίσεις λογαριασμού ή στην προδιαγραφή.
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;
}Ελέγξτε την ουρά
- Κάντε ένα εσωτερικό αναγνωριστικό εργασίας ντετερμινιστικό και μοναδικό μέσα σε μία εκτέλεση.
- Χωρίστε ένα υπερμεγέθες σύνολο σε διαχειρίσιμες ομάδες.
- Διατηρήστε την αποτυχία ενός στοιχείου διακριτή από την αποτυχία ολόκληρης της ουράς.
Συλλέξτε αποτελέσματα
Συνδέστε ένα αποτέλεσμα με εσωτερικό αναγνωριστικό και διατηρήστε την κατάσταση κάθε εργασίας.
Μην επαναλαμβάνετε αυτόματα όλες τις εργασίες: επαναλάβετε μόνο παροδικές αποτυχίες αφού ελέγξετε την ιδιοδυναμία.