AddAgent
Описание и параметры
mixed CAgent::AddAgent( string name, string module = "", string period = "N", int interval = 86400, string datecheck = "", string active = "Y", string next_exec = "", int sort = 100 )
Метод регистрирует новую функцию-агент. Статический метод.
Параметры
Параметр | Описание | С версии |
---|---|---|
name | Строка PHP для запуска агента-функции. | |
module | Идентификатор модуля. Необходим для подключения файлов модуля. Необязательный. По умолчанию пустой. | |
period |
Если значение - "Y", то очередная дата запуска агента (next_exec) будет рассчитываться как: next_exec = next_exec + intervalТ.е. при очередном запуске, если прошло уже больше времени чем указано в параметре interval, агент сначала будет запускаться ровно столько раз сколько он должен был запуститься (т.е. столько раз сколько он "пропустил"), а затем, когда next_exec достигнет либо превысит текущую дату, он будет в дальнейшем запускаться с периодичностью указанной в параметре interval. Как правило, подобное используется в агентах которые должны гарантированно запуститься определённое количество раз. Значение period = "Y" соответствует настройке агента в административной панели Периодичность выполнения: точно в указанное время. Если значение - "N", то очередная дата запуска агента (next_exec) будет рассчитываться как: next_exec = дата последнего запуска + intervalТ.е. агент после первого запуска будет в дальнейшем запускаться с периодичностью указанной в параметре interval. Значение period = "N" соответствует настройке агента в административной панели Периодичность выполнения: через заданный интервал. Параметр необязательный, по умолчанию - "N". | |
interval | Интервал (в секундах), с какой периодичностью запускать агента. Необязательный. По умолчанию - 86400 (1 сутки). | |
datecheck | Дата первой проверки "не пора ли запустить агент" в формате текущего языка. Необязательный. По умолчанию - текущее время. | |
active | Активность агента (Y|N). Необязательный. По умолчанию - "Y" (активен). | |
next_exec | Дата первого запуска агента в формате текущего языка. Необязательный. По умолчанию - текущее время. | 3.1.4 |
sort | Индекс сортировки позволяющий указать порядок запуска данного агента относительно других агентов для которых подошло время запуска. Необязательный. По умолчанию - 100. | 3.2.9 |
Возвращаемые значения
При успешном выполнении, возвращает ID вновь добавленного агента, иначе - false. Если агент ничего не возвращает, он удаляется. Как правило он должен вернуть вызов самого себя.
Смотрите также
Примеры использования
<? // добавим агент модуля "Статистика" CAgent::AddAgent( "CStatistic::CleanUpStatistics_2();", // имя функции "statistic", // идентификатор модуля "N", // агент не критичен к кол-ву запусков 86400, // интервал запуска - 1 сутки "07.04.2005 20:03:26", // дата первой проверки на запуск "Y", // агент активен "07.04.2005 20:03:26", // дата первого запуска 30); ?>
<? // добавим агент модуля "Техподдержка" CAgent::AddAgent( "CTicket::AutoClose();", // имя функции "support", // идентификатор модуля "N", // агент не критичен к кол-ву запусков 86400, // интервал запуска - 1 сутки "", // дата первой проверки - текущее "Y", // агент активен "", // дата первого запуска - текущее 30); ?>
<? // добавим произвольный агент не принадлежащий ни одному модулю CAgent::AddAgent("My_Agent_Function();"); ?> <? // файл /bitrix/php_interface/init.php function My_Agent_Function() { // выполняем какие-либо действия return "My_Agent_Function();"; } ?>
<? // добавим произвольный агент принадлежащий модулю // с идентификатором my_module CAgent::AddAgent( "CMyModule::Agent007(1)", "my_module", "Y", 86400); ?> <? // данный агент будет запущен ровно 7 раз с периодичностью раз в сутки, // после чего будет удален из таблицы агентов. Class CMyModule { function Agent007($cnt=1) { echo "Hello!"; if($cnt>=7) return ""; return "CMyModule::Agent007(".($cnt+1).")"; } } ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024