Замедлит ли несколько setTimeouts производительность нашего сервера?
Нет, это не замедлит его больше, чем время процессора, используемое при каждом таймере.
Конструкция таймера в node.js специально разработана для правильного управления большим количеством таймеров. Не должно быть проблем с наличием большого количества таймеров (десятки тысяч будут в порядке). Есть отсортированный список таймеров, и он использует только фактический таймер уровня ОС или «следующее» событие таймера для запуска. Когда это срабатывает, он захватывает следующее событие в списке и устанавливает для него таймер уровня ОС. Когда создается новый таймер, он вставляется в отсортированный список, и если он не является первым таймером в списке, он просто будет ждать своей очереди, пока не станет первым в списке.
Тем не менее, вам может не потребоваться отдельный таймер для каждого заказа. Поскольку вам не нужна точность на уровне миллисекунд или даже минут, вы можете вести список незавершенных заказов с отметкой времени их последнего изменения, а затем у вас может быть один интервальный таймер, который запускается каждые несколько минут и который просто проверяет, какие заказы имеют превысил ваше неактивное время и должен быть отменен. Если список заказов был отсортирован по его отметке времени, вы просто проверите несколько заказов с конца, пока не найдете те, которые больше не нужно отменять.