Создайте API широковещательной рассылки по расписанию с помощью node.js и Mongodb

#node.js #mongodb #api #design-patterns #scheduled-tasks

#node.js #mongodb #API #шаблоны проектирования #запланированные задачи

Вопрос:

Предположим, вам нужно реализовать широковещательную рассылку по расписанию для пользователей в их приложении (например, WhatsApp, Line). Данные будут отправляться от клиента (через HTML-форму), здесь логика такова,

  1. Если isSchedule === false затем сохраните сообщение в базе данных и передайте его прямо сейчас.
  2. Если isSchedule === true затем сохраните сообщение в базе данных и подождите, пока время не достигнет и не отправит сообщение.

Как запустить базу данных по истечении времени?

Решение, которое появляется в моем сознании, заключается в использовании cron job путем извлечения данных из базы данных каждую минуту и проверки с Date.now() помощью if timeInDB - Date.now() < 0 , а затем просто широковещательного сообщения пользователю. Но я не уверен, что это хорошее решение для получения данных каждую минуту? Пожалуйста, посмотрите на диаграмму ниже, спасибо. введите описание изображения здесь

Ответ №1:

Вы также можете использовать node-schedule (https://www.npmjs.com/package/node-schedule ) нпм. Это помогает с временным планированием, в отличие от cron-job, который является расписанием на основе интервалов.