Размножение запросов
Уже в первые недели после запуска сервиса на новом движке Drupal наткнулся на разные особенности работы этого проекта. Одна из них связана с обработкой форм запроса, коих здесь предостаточно. С одной стороны хотелось чтобы результаты запроса отображались на странице, в адресе которой содержится сам запрос. С другой стороны требуется вести журнал запросов при каждой обработке формы.
Реализовано это было перенаправлением на требуемый адрес после подтверждения формы пользователем и обработки запроса программой. А журнал запросов писался при наличии в обрабатываемой форме непустого запроса. При этом рендеринг формы производился, как для параметров POST, так и для адреса страницы.
Первый тонкий эффект этого выразился в том, что при запуске нового запроса программа обрабатывала два: текущий и предыдущий. Для посетителей, что транскрибируют одно слово, проблем нет, но вот для тех, кто транскрибирует подряд несколько слов стало происходить дублирование запросов в логе.
Второй эффект оказался связан с поисковыми роботами. В разделе «Популярные запросы» находятся ссылки на популярные слова и при проходе по ним поискового робота формы снова обрабатываются и запрос отправляется в журнал.
Пока сайт не проиндексирован - все в порядке, но вот когда он в выдаче поиска... Вчера и сегодня при 50 посетителях и 200 просмотрах страниц в журнале оказалось полторы тысячи (!!!) запросов за сутки. Это все не по-детски настойчивый Google. Пришлось искать способ обойти эту проблему. Решил разместив код записи в журнал не в рендеринге формы, а перед самым перенаправлением.
Посмотрю по счетчику в ближайшие дни правильное ли решение.
UPD: Оказалось правильное решение. Теперь количество запросов за сутки коррелирует с числами просмотров страниц на счетчике.
