Страницы

Поиск по вопросам

пятница, 5 апреля 2019 г.

Ограничение количества запросов к странице

Как можно сделать ограничение кол-ва запросов к php странице к примеру к 3 в 1 сек, и как это лучше реализовать?
P.s Сама страница содержит динамические JSON данные


Ответ

А вы не ограничивайте доступ, просто кэшируйте результат сохраняя его в оперативной памяти, например, в memcached со сроком хранения 3 секунды.
addServer('localhost', 11211);
$json = 'error'; if (!($json = $m->get('json'))) { if ($m->getResultCode() == Memcached::RES_NOTFOUND) { // Долго и трудоемко вычисляем JSON $json = '{...}'; // Устанавливаем значение на 3 секунды $m->add('json', $json, 3); } } echo $json;
Как только memcached уничтожит ключ json, скрипт не обнаружит его, снова вычислит по динамическому запросу, положит в memcached и отдаст клиенту. В промежутке между этими событиями json будет извлекаться из memcached очень быстро. Тогда вы сможете отдавать произвольное количество запросов, не подвергая нагрузке хранилища, ответственные за генерацию JSON-а. Более того, при возрастании нагрузки вы сможете увеличивать время хранения ключа, а при ее снижении, наоборот, сокращать.

Комментариев нет:

Отправить комментарий