Хотя я не знаю лучшего способа сделать такую работу, но недавно я работал над аналогичной проблемой.Поскольку это широкий вопрос, но для иллюстрации я приведу пример почтовой службы.
Меня попросили создать почтовую службу, которая может использоваться другими службами, чтобы ставить в очередь не похожие необработанные электронные письма.с пользовательскими шаблонами, пока он не будет отправлен.
Программа (или рабочий), которую я назвал dispatcher
, работает неопределенно долго и проверяет наличие электронной почты в очереди в БД.Получено самое большее n
электронное письмо из очереди (наш почтовый сервис имеет некоторый порог).и одновременно отправлять их, подождать some
секунд и сделать это снова.
Для бесконечного запуска диспетчера я использовал async.forever
.
Для запуска параллельных заданий,Я использовал async.map
.
Кажется, вы можете сделать это в самом JS вместо использования файла bash (для некоторых вещей cron).Вы можете найти множество других полезных методов здесь async