Говоря на высоком уровне, у вас довольно много вариантов.
- В соответствии с вашим требованием к драгоценным камням у вас, вероятно, будет поле или таблица, представляющая эту покупку драгоценных камней, например, дату начала. Если пользователь купил этот пакет, скажем, 01.01.2009, то на вашем узловом сервере может быть запущен один раз в день процесс, который запрашивает таблицу покупок и выдает гемы любому пользователю, у которого текущая дата меньше, чем за 30 дней до покупки дата.
Ваш стол может выглядеть так:
user_id
date_purchased
gems_per_day
Чтобы реализовать это как функцию, которая будет запускаться один раз в день, вы можете создать для него отдельный скрипт и запускать его для задания cron один раз в день или создать класс типа Timer в Node, который будет запускать вашу функцию каждый раз. 24 часа.
- Для ваших специальных предложений, как часть кода вашего Магазина, допустим, у вас есть функция, которая обновляет элементы, которые в данный момент доступны в магазине, вы запускаете этот код один раз в день (как один из двух методов, упомянутых выше) и вероятно, хранит эти элементы в вашей базе данных. Точно так же вы можете каждый день проверять, находится ли текущая дата в пределах этого «периода специального предложения», и если это так, вы можете установить этот продукт в своей базе данных как активный.
Ваш стол может выглядеть так:
product_id
enabled
или
product_id
start_dayMonth
end_dayMonth
Надеюсь, это даст вам несколько идей о том, как вы можете это изложить. С удовольствием отвечу на любые вопросы