Идея для виртуального cron’а

Есть задача, которую нужно выполнять регулярно (бэкапить базу, пересчитывать значения, скачивать и парсить xml-ки).

Хорошо, если есть крон. Если его нету, задачу цепляют на скрипт пользовательского интерфейса.

if (time()>($last_run+24*60*60))  {$last_run = time(); do_some_hard_work(); }

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

Идея проста: насиловать не честных пользователей, а нахальных ботов.

if (strpos($_SERVER['HTTP_USER_AGENT'],»googlebot») && (time()>($last_run+24*60*60)) )  {$last_run = time(); do_some_hard_work(); }

Бот гугла заходит регулярно и не очень обижается, если время генерации будет до 5 секунд.  Но не забываем проверять раздел web crawl errors в google sitemaps.

Один ответ на “Идея для виртуального cron’а”

  1. 4matic:

    На phpclub или где-то на форумах обсуждалось, как пользователю выдать все содержимое, а скрипт выполнялся дальше. На самом деле вариантов масса. Давать запускать клиенту – это однозначно порочная практика.

Ответить