#node.js #mongodb #api #design-patterns #scheduled-tasks
#node.js #mongodb #API #шаблоны проектирования #запланированные задачи
Вопрос:
Предположим, вам нужно реализовать широковещательную рассылку по расписанию для пользователей в их приложении (например, WhatsApp, Line). Данные будут отправляться от клиента (через HTML-форму), здесь логика такова,
- Если
isSchedule === false
затем сохраните сообщение в базе данных и передайте его прямо сейчас. - Если
isSchedule === true
затем сохраните сообщение в базе данных и подождите, пока время не достигнет и не отправит сообщение.
Как запустить базу данных по истечении времени?
Решение, которое появляется в моем сознании, заключается в использовании cron job
путем извлечения данных из базы данных каждую минуту и проверки с Date.now()
помощью if timeInDB - Date.now() < 0
, а затем просто широковещательного сообщения пользователю. Но я не уверен, что это хорошее решение для получения данных каждую минуту? Пожалуйста, посмотрите на диаграмму ниже, спасибо.
Ответ №1:
Вы также можете использовать node-schedule (https://www.npmjs.com/package/node-schedule ) нпм. Это помогает с временным планированием, в отличие от cron-job, который является расписанием на основе интервалов.