Promise Reducer на помощь!
[1, 2, 3, 4].reduce((op, n) => {
return op.then(filteredNs => {
return new Promise(resolve => {
setTimeout(() => {
if (n >= 3) {
console.log("Keeping", n);
resolve(filteredNs.concat(n))
} else {
console.log("Dropping", n);
resolve(filteredNs);
}
}, 1000);
});
});
}, Promise.resolve([]))
.then(filteredNs => console.log(filteredNs));
Редукторы потрясающие. «Уменьшите мою проблему до моей цели», похоже, является довольно хорошей стратегией для чего-либо более сложного, чем простые решения для вас, т. Е. Фильтрация массива вещей, которые не все доступны сразу.
Могут быть незанятые задачи, но это не обязательно означает, что они находятся в состоянии UNASSIGNED
или FAILURE
. Они активны и работают как часть группы потребителей (при условии использования коннектора приемника).
Если у вас был исходный соединитель, то есть только 50 работающих потоков производителей, отправляющих данные во все 40 разделов. Не существует ограничения 1: 1 на то, сколько производителей существует для потребителей.
Добро пожаловать в PUT
новую конфигурацию для разъема и установите tasks.max
обратно на 40.