Cоздание Google Sitemap из сценария, запускаемого из-под cron'а
Cоздание Google Sitemap из сценария, запускаемого из-под cron'а
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
И опять про cron!
На этот раз выполним упражнение по созданию Google Sitemap из сценария запускаемого из-пдо cron'а. В прошлый раз мы обсуждали запуск агентов. Берем упоминавшийся там скрипт cron_events.php, копируем его к себе в каталог php_interface и после подключения пролога вставляем следующий код:
//подключение модуля поиска
if(CModule::IncludeModule('search'))
{
//В этом массиве будут передаваться данные "прогресса". Он же послужит индикатором окончания исполнения.
$NS=Array();
//Задаем максимальную длительность одной итерации равной "бесконечности".
$sm_max_execution_time = 0;
//Это максимальное количество ссылок обрабатываемых за один шаг.
//Установка слишком большого значения приведет к значительным потерям производительности.
$sm_record_limit = 5000;
do {
$cSiteMap = new CSiteMap;
//Выполняем итерацию создания,
$NS = $cSiteMap->Create("ru", array($sm_max_execution_time, $sm_record_limit), $NS);
//Пока карта сайта не будет создана.
} while(is_array($NS));
}
Остается настроить крон для периодического запуска. Поскольку отсутствует механизм блокировки процесса создания Sitemap, то запуск имеет смысл делать не чаще раза в день. Желательно в часы наименьшей нагрузки (в их определении может помочь соответствующий отчет из модуля статистики: /bitrix/admin/traffic.php?lang=ru&set_filter=Y&find_date1_DAYS_TO_BACK=14&find_hit=Y).