Доброе время суток дорогие друзья.
Давайте сразу посмотрим на схему.
У меня есть некий большой пул разных задач которые нужно решать параллельно.
Каждая задача может выполнятся разное кол-во времени.
Первое решение было простое, создаем пул задач, ждем завершения всех задач, и так по кругу.
Но проблема в том что есть задачи которые решаются довольно быстро например за 3сек. и есть которые решаются медленно, например за 120сек. получается что пока последняя задача не будет решена, новый пул не поступит в обработку. Очень хочется избавится от этого.
Должны выполнятся следующие требования.
- Должна быть возможность указать сколько дочерных процессов мы можем создавать.
- Мы должны получать статус ответа от процесса ( например был выполнен успешно или нет ) - что то очень простое например bool тип.
- Нужна возможность грохнуть процесс если он работает больше n заданного времени (например завис)
- При завершение одного процесса (удачно или грохнули) должен стартовать новый процесс со следующей задачей.
Какие в nodejs есть решения для es6 которые отвечают всем 4 условиям?
Есть ли у кого грамотные примеры подобных задач?