Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Не выполняется агент

00 голосов
7
Довольно-то таки простая функция которая выполняет перенос в другой раздел и изменяет одно свойство, по истечении определенного времени. Отлично работает при вставке на лист.
Код
function AutoAuctsCmpl($extm = 4)
{
    $arSelect = array("IBLOCK_ID", "ID", "PROPERTY_status");

    $arFilter = array(
       "<=DATE_ACTIVE_FROM" => array(false, ConvertTimeStamp(time()-3600*$extm, "FULL")),
       "IBLOCK_ID" => 47,
       "SECTION_ID" => 151
    );
  
    $arSects = array(152);

    $res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);
    while($ob = $res->GetNextElement())
    {
      $arFields = $ob->GetFields();
  
      CIBlockElement::SetPropertyValues($arFields["ID"], 47, "23", "STATUS");

      CIBlockElement::SetElementSection($arFields["ID"], $arSects);
    }
    
    return "AutoAuctsCmpl(".$extm.");";
}

Но как только я создаю агент:


Код
Дата последнего запуска: 
*Дата и время следующего запуска (DD.MM.YYYY HH:MI:SS):    04.10.2011 15:10:00
Активен:    Да
Модуль:    
*Функция агента:    AutoAuctsCmpl(4);
ID пользователя:    
Сортировка:    100
Периодический:    Да
Интервал (сек.):    60
 
Она не выполняется.

Функция размещена в /bitrix/php_interface/init.php и по идеи должны быть доступна всегда, однако такое ощущение, что агент ее просто не видит.
спросил 22 Июль, 13 от Aribor (560 баллов)

7 Ответы

00 голосов
А модуль инфоблоков у вас почему не подключается?
ответил 22 Июль, 13 от Arn4 (2,140 баллов)
00 голосов
Хм... А зачем?
Функция у меня в /bitrix/php_interface/init.php, он по идеи подключается по любому.
Сказать, что не доступна какая-то функция используемая в ней, тоже нельзя, потому, что даже в таком виде:


Код
function AutoAuctsCmpl($extm = 4)
{
    return "AutoAuctsCmpl(".$extm.");";
}
агент ее не запускает.

Да и страница на которой я тестирую ее выполнения выглядит так:


Код
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");?> 
<?AutoAuctsCmpl(4)?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
То есть здесь тоже ничего не подключается, но все работает.
ответил 16 Сен, 13 от Aribor (560 баллов)
00 голосов
Затем, что до вызова CModule::IncludeModule('iblock') в агенте функционал этого модуля недоступен.
ответил 14 Дек, 13 от Pomnep (13,960 баллов)
00 голосов
Ах вот как? Агент запускается в другом окружении?
Значит добавление CModule::IncludeModule('iblock') в функцию или просто указание моделя iblock в параметре агента Модуль, должно решить проблему?

Но однако же и функция
Код
function AutoAuctsCmpl($extm = 4)
{
    return "AutoAuctsCmpl(".$extm.");";
}
не выполняется, хотя в ней вообще не используется функционал модулей.
ответил 29 Март, 14 от Aribor (560 баллов)
00 голосов
Как вы определяете, что она не выполняется? По времени в списке агентов?
ответил 22 Июль, 14 от Pomnep (13,960 баллов)
00 голосов
Конечно. Оно не обновляется. Это не правильно? (Я до сегодняшнего дня агенты и не использовал ни разу.)

Да и моя функция не работает даже с добавлением iblock
ответил 23 Ноя, 14 от Aribor (560 баллов)
00 голосов
Глупый вопрос, но все же. После создания агента обращения к страницам сайта были?
ответил 19 Март, 15 от Pomnep (13,960 баллов)

Похожие вопросы

0 голосов
6 ответов
спросил 09 Март, 13 от Dobriy (400 баллов)
0 голосов
3 ответов
спросил 05 Март, 14 от Amentet (2,080 баллов)
0 голосов
3 ответов
спросил 27 Март, 14 от XIDAN (620 баллов)
0 голосов
2 ответов
спросил 01 Сен, 13 от Zews (180 баллов)