<?php
$_SERVER["DOCUMENT_ROOT"] = "/home/111/domains/111.ru/public_html";
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS",true);
set_time_limit (0);
define("LANG","ru");
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
//============== НАСТРОЙКИ =================
// время запуска
$hourmin_start='0000';
// файл состояния
$fname_stat='/home/111/cron/indexing.dat';
//=============== ПОЕХАЛИ ==================
// инициализация переменных
$datehour_now=date("YmdH");
$hourmin_now=date("Hi");
// загрузить файл статуса
$stmp=@file_get_contents($fname_stat);
if($stmp)
{
$arIndex=unserialize($stmp);
}
else{ // начальные настройки
$arIndex=array(
'STATUS' => 'stop',
'NS' => array(),
'CNT' => 0,
'STEP' => 0,
'LASTRUN' => '',
'DATEHOUR' => 0 // время дата-час последнего запуска
);
}
$frun_index=false;
if($arIndex['STATUS'] == 'work')
{ // требуется продолжить индексирование
$frun_index=true;
}
elseif((($datehour_now - $arIndex['DATEHOUR']) >= 20) && ($hourmin_start <= $hourmin_now))
{ // можно запускать!
$arIndex['DATEHOUR']=$datehour_now;
$arIndex['STEP']=0;
$frun_index=true;
}
if(!$frun_index)
{
echo 'ReIndex - Stop';
$stmp=serialize($arIndex);
$headers = 'From: bobot@111.ru' . "\r\n" .'Reply-To: bobot@111.ru' . "\r\n" .'X-Mailer: PHP/' . phpversion();
mail('igor@111.su','IndexingStop',$stmp,$headers);
exit();
}
//============= ВЫВОД =================
include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
echo 'ReIndex - Run';
if(CModule::IncludeModule("search"))
{
$Full=1;
$max_execution_time=20;
$res=CSearch::ReIndexAll($Full,$max_execution_time,$arIndex['NS']);
if(is_array($res))
{
$arIndex['STATUS']='work';
$arIndex['NS'] =$res;
$arIndex['CNT'] =$res['CNT'];
}
else{
$arIndex['STATUS']='stop';
$arIndex['NS'] =array();
$arIndex['CNT'] =$res;
}
$arIndex['STEP']++;
$arIndex['LASTRUN']=date('Y.m.d H:i');
// сохранить в файле
if($fp=@fopen($fname_stat,'w'))
{
$stmp=serialize($arIndex);
$headers = 'From: bobot@111.ru' . "\r\n" .'Reply-To: bobot@111.ru' . "\r\n" .'X-Mailer: PHP/' . phpversion();
mail('igor@111.su','Indexing',$stmp,$headers);
fwrite($fp,$stmp);
fclose($fp);
}
}
?> |