Я работаю над проектом ставок на криптовалюту. Я использую mongodb в качестве базы данных и mongoose для работы с ней. У меня есть эта коллекция для документов, описывающих игры на ставки. У каждого документа есть поле с именем expires, которое обычно составляет 3 минуты после его создания. После этой даты нельзя добавлять ставки, а для завершения игры должна быть запущена функция: сделайте все соответствующие расчеты, чтобы найти победителя, и установите для статуса живой игры значение false. В базе данных может быть только одна живая игра, и я достигаю этого, используя частичный индекс для живого поля. Мне нужно создать механизм, который бы заканчивал игры по истечении срока их действия, и я понятия не имею, какой здесь лучший подход.
Пока я рассматриваю следующие решения:
* Запустите отдельный экземпляр узла, который выполняет проверки живой игры и даты ее истечения каждые 1-3 секунды.
* Запланируйте выполнение функции, которая отвечает за завершение игры сразу после даты истечения срока действия.
Есть ли лучшие подходы для решения этой проблемы? Соответствует ли мой игровой дизайн или я ошибся, реализовав эту функцию? Будет ли лучше сохранить игровой объект в памяти и сохранить его после окончания?