Рейтинг:0

Есть ли способ контролировать, как RouteProvider кэширует маршрут?

флаг ar

Drupal кэширует маршруты в cache_data. Это происходит в Друпал\Ядро\Рутинг\РутеПровидер.

Я смотрю на веб-сайт с высокой посещаемостью с «интерактивной» функцией поиска на основе карты. Когда вы изменяете размер окна или перемещаетесь по карте, на сервер отправляется пара запросов для получения результатов поиска на основе вида карты.

Почти все запросы будут уникальными, потому что координаты карты являются частью параметров запроса. Это, в свою очередь, кажется наводнением cache_data Таблица. cache_data table легко увеличивается на 100 ГБ за час, поэтому выполняется много операций записи.

Следовательно, база данных очень загружена.

  1. Можно ли отключить это кэширование?
  2. Если № 1 невозможен, есть ли способ контролировать Сид из кэшированных маршрутов? Кэш маршрутов по сути бесполезен в том виде, в каком он есть сейчас, поскольку пользователи никогда не получат попадание в кеш. Возможные комбинации параметров запроса просто слишком велики.
Рейтинг:1
флаг cn

Для сайтов с высоким трафиком в целом вы должны поместить таблицы кеша в память (Redis или Memcached). Настройте Redis как кеш, см. https://redis.io/topics/config

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

$request->server->set('QUERY_STRING', '');

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

Ограничьте обработку специальной строки запроса определенными путями, некоторые системные маршруты изменяют параметры запроса во время маршрутизации.

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

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