Есть ли способ получить задержку определенного времени, используя базу данных постоянства, как Redis? - PullRequest
0 голосов
/ 26 декабря 2018

Я хочу вставить задержку в 30 минут между двумя вызовами функций, например, для отправки электронной почты через 30 минут после отправки fcm / sms.

Я пытаюсь использовать Redis для этого, поэтому яиспользуя модуль имени узла bull, который позволяет мне создавать задания с задержкой и помещать их в очередь.// отправляем смс пользователю
смс (null, {to: phone, content: {msg: "тестовое сообщение"}, отправитель: "XYZ"});

// здесь я должен добавитьзадержка 30 минут

// отправка уведомления пользователю fcm (null, {user_ids: userId, message: "restart !!!"});

Я не хочу использоватьsetTimeout, так как он не будет работать, если мое приложение перезапустится.

1 Ответ

0 голосов
/ 08 января 2019

Я смог сделать это, используя бык https://www.npmjs.com/package/bull. Этот пакет содержит опцию добавления задержек в миллисекундах: - Например, добавление задержки в 30 минут

providerDelayedQueue.add(options, { delay: 1800000 });

Вышеработа будет израсходована не позднее, чем через 30 минут.

...