Я пишу модуль и необходимо чтобы после установки модуля создавался агент,
он будет запускать функцию, которая обращается к API инфоблоков с заданной периодичностью и импортирует в инфоблок данные из внешнего источника.
Каким образом можно в настройках своего модуля указать, чтобы при его установке создавался агент, который будет запускаться через нужное количество времени?
И где расположить сам код агента в структуре модуля?
Здесь не очень понятно если функция агент - это метод, который находится в модуле в одном из классов то как к ней обращаться? В CAgent::AddAgen там где первый аргумент имя функции агента надо писать ведь путь к классу своего модуля и его методу? Например если метод initAgent - это агент он находится в классе Import пространства имен namespace Alex\Iiko.
Второе в описании к агентам написано что в return надо указать return "My_Agent_Function();";
Но если это метод класса то как надо писать? Нечто такое, вот класс и в нем агент
Александр, что-то типа такого, ваша функция должна быть доступна при обращении к ней
<?
CAgent::AddAgent(
"Import::initAgent();", // имя функции
"alex.iiexochange", // идентификатор модуля
"N", // агент не критичен к кол-ву запусков
86400, // интервал запуска - 1 сутки
"07.04.2005 20:03:26", // дата первой проверки на запуск
"Y", // агент активен
"07.04.2005 20:03:26", // дата первого запуска
30);
?>
Александр, при установки модуля создастся агент и добавится в список агентов.
Агент запустится через указанный интервал, например как в примере через 86400 секунд (1 сутки)