Nodejs backend, Node-Cron и pm2 reload / process выход - PullRequest
0 голосов
/ 03 мая 2020

Я работаю над express бэкэнд-API, и мне нужна возможность ставить электронную почту в очередь для определенных и динамических c раз. В моем бэкэнде express API у меня есть модель «Таймер» (MongoDB), которая принимает время Дата в миллисекундах. Эти таймеры создаются администраторами внешнего интерфейса на маршруте POST. Когда событие (Таймер) создается с указанным c временем, я беру время и вычитаю из него 15 минут и использую новое время в качестве времени Крона. Когда приходит время, Cron выполняет функцию, которая запрашивает базу данных на предмет электронных писем пользователей, а затем отправляет их по электронной почте. Это в значительной степени 15-минутное уведомление / напоминание до события.

Меня беспокоит, будет ли сервер nodejs когда-либо перезагружен или отключен, а затем восстановлен; возможно перезагрузка системы. Я потерял бы все задания Cron, ожидающие выполнения. Поэтому, если я перезапущу бэкэнд express, время события (таймеры) все еще будет доступно через базу данных; но Кроны ушли. Какой лучший способ справиться с этим?

Я думал о функции, которая будет запрашивать базу данных Timer и устанавливать новые задания Cron при инициализации сервера. Таким образом, это всегда будет создавать Кроны при старте с любыми начальными уже существующими таймерами, а затем при появлении новых таймеров для них будет установлен Крон по маршруту POST API.

Любая помощь приветствуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...