Подписка на блог

В Телеграме помимо ссылок на заметки делюсь околодизайнерскими наблюдениями.

В Твиттере помимо ссылок на заметки пишу всякую чушь.

В Тумблере и Же-же есть автоматические трансляции. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

По РСС и Джейсон-фиду трансляции для автоматических читалок

Заманить паука — хорошая мысль

В ответ на мой, казалось бы, риторический вопрос о том, как выполнять задачи, если нет возможности повесить выполнялку на cron, а посетители на сайт не очень ходят, Вадим Артамонов написал, что нужно «заманить паука от поисковой системы». А ведь идея-то очень хорошая. Причём, хороша она даже если посетители ходят по сайту огромными толпами.

Если на cron повесить задачи не удаётся, то, как я думал, придётся делать, например, вот так: если очередной хит произошёл через N минут после предыдущего шага выполнялки, то мы делаем ещё один шаг. Однако это коряво, потому, что один шаг может легко занять сколько угодно времени. Посетителю не очень приятно будет ждать, пока загрузится страница, особенно учитывая, что она занимается своими делами, а вовсе не тем, что от неё хочет посетитель.

Но если посетитель — это поисковый паук, то почему бы ему и не подождать? Идею можно развить, дополнив поисковых пауков вообще всеми юзер-агентами, которые работают не в «реальном времени», например, RSS-читалками.

Значит, подводя итог, получаем следующее: если предыдущий шаг произошёл более N минут назад, а юзер-агент — не браузер, то делаем ещё один шаг.

Красиво. Спасибо за идею!
Подписаться на блог
Поделиться
Отправить
2005   Эгея
5 комментариев
dull.ru
а разве RSS потоки у тебя не статичным файлами лежат? 
Илья Бирман
Статичными. Но это легко исправить :-)
NKostya
А не легче ли сделать так:
Пришел посетитель (пользователь, робот, rss читалка...) по ходу дела выяснили, что нужно выполнить задачу. Делаем запрос на загрузку файла (симулируем обращение пользователя к сайту) при это устанавливаем определенное время, которое мы согласны ждать ответа и ловим появившиеся ошибки. И вуаля... получаем подобие крона, правда, запускающийся только от прихода посетителей.
Илья Бирман
Не понял ничего.
NKostya
Смысл в том, чтобы не заставлять ждать пользователя. Я предлагаю сделать это путем генерации ложного захода страницы(!). Т. е. скрипт должен обратиться к странице по протоколу http, которую мы не смогли повесить на крон.

Сделать некий load (не знаю как в PHP) http://www.site.ru/no_cron.php и при этом не дожидаться окончания загрузки страницы.
Илья Бирман
Да, теперь понял. Похоже на хороший вариант. Спасибо.
kukutz
См. htCron.
Илья Бирман
Посмотрел. Там не написано, что это такое. Термин «Псевдо-крон на PHP» мало о чём говорит. Какая сила заставляет этот всевдо-крон запускать задания в час X? Чем моя реализация хуже? (вариант NKostya)
kukutz
htCron — это публично-доступная opensource-реализация решения, предложенного Костей.

Ей года 2.5 примерно.

Пользовательский интерфейс
Доступны три раздела
электронного учебника

Популярное