NodeJs - setTimeout () для удаления пользовательской подписки из БД - PullRequest
0 голосов
/ 03 марта 2020

Я новичок в nodeJs. Я занимаюсь разработкой платформы, на которой пользователи могут подписаться в пробной или профессиональной версии. Я хотел бы знать, могу ли я использовать метод setTimeout для удаления информации пользователя из БД после истечения срока действия подписки. если это невозможно, есть ли способ сделать это или библиотека, которая позволяет вам управлять подписками?

Ответы [ 4 ]

1 голос
/ 03 марта 2020

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

Почему бы вам просто не сохранить подписку в базе данных? дата и при входе пользователя проверить, больше ли разница даты подписки от текущей, чем период бесплатной подписки?

0 голосов
/ 03 марта 2020

Другое решение : создать Индекс TTL . Mongodb периодически проверяет и удаляет просроченных пользователей.

Вам не нужно писать дополнительный код / ​​logi c.

0 голосов
/ 03 марта 2020

Решением вашей проблемы является запуск задания CRON. Это может выполняться один раз каждые 24 часа для проверки подписки пользователя, а если пробная версия истекла, удалить пользователя. Для этого вы можете использовать пакет cron npm.

0 голосов
/ 03 марта 2020

setTimeout не надежен, сервис может go вверх или вниз, и ваш запрос должен быть постоянным.

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

Здесь также широко обсуждается вопрос: Мне нужен Nodejs планировщик, который позволяет выполнять задачи с разными интервалами

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