Чтобы сэкономить некоторые запросы к БД, определите
- максимально допустимое количество запросов в день.
- первый день, доступный для вашего приложения (смещение даты).
Затем добавьте поле requestcount в базу данных для пользователя.
При первом запросе получите счет из базы данных.
Счет всегда является номером дняумножается на максимум + 1 запросов в день плюс фактические запросы этого пользователя:
day * (max + 1) + n
Так что, если по первому запросу количество в БД фактически превышает допустимое, блокируется.
В противном случае, если она ниже, чем база текущего дня, сбросьте базу текущего дня (в переменной PHP)
И подсчитайте.Сохраните это значение в БД.
Это одна операция чтения, и, если запрос все еще действителен, одна операция записи в БД на запрос.
Нет необходимости запускатьЗадача cron, чтобы убрать это.
Это фактически то же самое, что вы предлагаете в своем вопросе, но информация о дне является частью значения счетчика.Таким образом, вы можете сделать больше с одним значением за раз, в то время как подсчет +1 для запроса все еще работает для блока.