@ff0xff

Выполнять задачи в отдельных потоках на nodejs поддерживая максимальное количество потоков, какие есть решения?

Доброе время суток дорогие друзья.
Давайте сразу посмотрим на схему.
5d074b5d83f6e085378047.png

У меня есть некий большой пул разных задач которые нужно решать параллельно.
Каждая задача может выполнятся разное кол-во времени.
Первое решение было простое, создаем пул задач, ждем завершения всех задач, и так по кругу.
Но проблема в том что есть задачи которые решаются довольно быстро например за 3сек. и есть которые решаются медленно, например за 120сек. получается что пока последняя задача не будет решена, новый пул не поступит в обработку. Очень хочется избавится от этого.
Должны выполнятся следующие требования.


  1. Должна быть возможность указать сколько дочерных процессов мы можем создавать.
  2. Мы должны получать статус ответа от процесса ( например был выполнен успешно или нет ) - что то очень простое например bool тип.
  3. Нужна возможность грохнуть процесс если он работает больше n заданного времени (например завис)
  4. При завершение одного процесса (удачно или грохнули) должен стартовать новый процесс со следующей задачей.


Какие в nodejs есть решения для es6 которые отвечают всем 4 условиям?
Есть ли у кого грамотные примеры подобных задач?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
В итоге - очереди, любые) тут целый каталог, если надо. Я топлю за RabbitMQ в большинстве случаев
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы