Как выполнять параллельные бесконечные задания - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть несколько заданий (функций), которые обрабатывают данные в моей БД.Они должны работать бесконечно и одновременно.Мне было интересно, как лучше их запустить.Должен ли я написать bash-файл, который начинается с node somejob.js для каждого задания, или я должен использовать рабочих узлов из файла JavaScript, или каким-либо другим методом вообще?

1 Ответ

0 голосов
/ 15 февраля 2019

Хотя я не знаю лучшего способа сделать такую ​​работу, но недавно я работал над аналогичной проблемой.Поскольку это широкий вопрос, но для иллюстрации я приведу пример почтовой службы.

Меня попросили создать почтовую службу, которая может использоваться другими службами, чтобы ставить в очередь не похожие необработанные электронные письма.с пользовательскими шаблонами, пока он не будет отправлен.

Программа (или рабочий), которую я назвал dispatcher, работает неопределенно долго и проверяет наличие электронной почты в очереди в БД.Получено самое большее n электронное письмо из очереди (наш почтовый сервис имеет некоторый порог).и одновременно отправлять их, подождать some секунд и сделать это снова.

Для бесконечного запуска диспетчера я использовал async.forever.

Для запуска параллельных заданий,Я использовал async.map.

Кажется, вы можете сделать это в самом JS вместо использования файла bash (для некоторых вещей cron).Вы можете найти множество других полезных методов здесь async

...