запланировать отправку электронной почты на более позднюю дату с помощью nodemailer/node-cron

У меня есть частное поле для регистрации в бета-версии, которое мгновенно отправит электронное письмо, уведомляющее пользователя о том, что нужно найти электронное письмо с подтверждением со специальным ключом для регистрации, а затем отправить электронное письмо со специальным ключом в более позднюю запланированную дату.

send.pre_approval(function(){
  new Cron({
    cronTime: // some later time,
    onTick: function(){
      send.approval()
      this.stop()
    }
  }).start()
})

send.pre_approval отправит электронное письмо pre_approval сразу после регистрации на закрытую бета-версию. Задание cron настроено на запуск через некоторое время, и функция onTick, которая срабатывает в установленное время cronTime, отправит электронное письмо с подтверждением, а затем вызовет метод остановки.

Кажется, это работает, как я и ожидал, но мне было интересно, можно ли остановить задание cron с помощью node-cron.

По сути, я планирую задание и останавливаю его после запуска, кажется, что лучшим способом было бы запланировать запуск задания на более позднее время после регистрации, есть идеи?


person Ephapox    schedule 14.12.2015    source источник


Ответы (1)


Мой коллега предложил лучшее решение, которое имеет больше смысла.

Запланируйте задание cron, которое проверяет поле create_date пользователя, который регистрируется, и по прошествии установленного времени с момента создания create_date отправляет электронное письмо.

Таким образом, для каждого пользователя нет задания cron.

person Ephapox    schedule 14.12.2015