У меня есть модель Item
, в которой хранятся предметы пользователя.Эта модель имеет поле endDate
, в котором экземпляры необходимо пометить для удаления, установив для поля expired
значение true.Есть ли какой-нибудь способ, которым я могу сделать это в loopback / express автоматически?Я использую postgresql
в качестве базы данных.
Я могу придумать следующие 2 способа, но я не думаю, что они являются лучшими решениями для этой проблемы:
1) Используя setTimeout
, я могу вызвать функцию, которая пометит элементыдля удаления.Это решение совсем не масштабируемо, так как оно не stateless
, и если запущено несколько экземпляров node
, это может вызвать проблемы.
2) Использовать базу данных redis
и для каждого элемента создатьвведите redis
со временем истечения.redis
автоматически вызовет функцию, когда истечет таймер, и тогда я смогу удалить элемент.Это, я думаю, масштабируемо, так как это stateless
.
Есть ли более эффективное решение для этого?
Редактировать
Я хочу уведомитьпользователь также, как только срок действия истекает.Итак, мне нужно, чтобы вызов функции происходил, как только истекает срок действия.Таким образом, установка ключа expireAt и запуск утилиты очистки через определенные промежутки времени здесь не сильно помогут.