Как хранить setInterval глобально и эффективно в Node.js, чтобы я мог очистить его от любого маршрута из моего API? - PullRequest
0 голосов
/ 23 марта 2020

Когда новый заказ вставлен, мне нужно распространить его среди подписчиков, основываясь на промежутке времени в 12 секунд. Например: A получит заказ немедленно, через 12 секунд он достигнет B.

Если кто-то выберет заказ, например B, мне нужно остановить распространение на C и D. Если B отклоняет ордер, я не хочу ждать разрешения 12 секунд, я хочу немедленно распространить ордер на следующий по очереди (C).

Что я пытался сделать do - установить запуск рекурсивной функции к тому времени, когда функционирует setTimeout. Но у меня нет никакого способа очистить его, пропустить или перезапустить механизм для случаев, которые я описал выше.

Если бы я мог сохранить экземпляр setTimeout / setInterval в глобальной переменной, которая позволила бы мне управлять им из других маршрутов API.

Но я совсем не уверен, что это хороший подход, поскольку хранение глобальных переменных в узле может привести к проблемам.

Может быть, я смогу сохранить его через Redis или кеш или что-то, что не захватит слишком много памяти и не столкнется с другими методами, которые хранятся глобально?

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