Идея для виртуального 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.

Реклама

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

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

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: