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-2025, «1С-Битрикс», 2025