Размножение запросов к сервису транскрипций

Mar 12, 2009 15:26


Из блога http://shaman.asiadata.ru.

Уже в первые недели после запуска сервиса www.transcriptor.ru на новом движке Drupal наткнулся на разные особенности работы этого проекта. Одна из них связана с обработкой форм запроса, коих здесь предостаточно. С одной стороны хотелось чтобы результаты запроса отображались на странице, в адресе которой содержится сам запрос. С другой стороны требуется вести журнал запросов при каждой обработке формы.

Реализовано это было перенаправлением на требуемый адрес содержащий запрос после подтверждения формы пользователем и обработки запроса программой. А журнал запросов писался при наличии в обрабатываемой форме непустого запроса. При этом рендеринг формы производился, как для параметров POST, так и для адреса страницы.

Первый тонкий эффект этого выразился в том, что при запуске нового запроса программа в реальности обрабатывала два: текущий и предыдущий. Для посетителей, что транскрибируют одно слово, проблем нет, но вот для тех, кто транскрибирует подряд несколько слов стало происходить дублирование запросов в логе.

Второй эффект оказался связан с поисковыми роботами. В разделе «Популярные запросы» находятся ссылки на популярные слова и при проходе по ним поискового робота формы снова обрабатываются и запрос отправляется в журнал.

Пока сайт не проиндексирован - все в порядке, но вот когда он в выдаче поиска... Через месяц после запуска при 50 посетителях и 200 просмотрах страниц в журнале оказалось полторы тысячи (!!!) запросов за сутки. Это все не по-детски настойчивый Google. Пришлось искать способ обойти эту проблему. Решил разместить программный код записи запросов в журнал не в рендеринге формы, а перед самым перенаправлением на страницу просмотра результатов.

Оказалось правильное решение. Теперь количество запросов за сутки хотя бы коррелирует с числами просмотров страниц на счетчике.

form api, google, drupal

Previous post Next post
Up