Тайм-аут, как это, может быть решением, но не самым лучшим.
Если тайм-ауты мгновенно добавляются в вашу память, как каждый час, когда вы перезапускаете процесс Node.js, таймеры, которые еще должны быть активированы,потерян, и это означает, что вы не можете перезапустить приложение, даже если вы пытаетесь обновить новый код, если вы не хотите потерять какой-либо из них.Потеря электронной почты или перезапуск, небольшая путаница, верно?
Наиболее часто применяемый подход для такого случая - это очередь сообщений.Вы можете принять Очередь сообщений как таймеры, которые хранятся и используются в базе данных, поэтому вам не нужно беспокоиться о том, отменяются ли таймеры или вызываются несколько раз, когда вы этого не хотите.
RabbitMQ - этоавтономный MQ, дружественный к Node.js.
Kue - это MQ-подобный пакет NPM, основанный на Redis.
Надеюсь, вам понравится их.;)