1c-Битрикс, работаем с агентами [bitrix api]

Для новичков так сказать, про агенты.

Что такое агенты в битриксе?

— Это функция которая будет запущена в определенное время, поддерживает периодичность запуска.

Если вам нужно динамически добавлять агентов, то есть для это API. Если вам просто нужно прикрутить один или два агента то прошу под кат, там по шагам разберемся с этим вопросом.

Итак создаем агента:

www.sitename/bitrix/admin/agent_list.php?lang=ru

Создаем нашу тестовую функцию:

Теперь чуть о параметрах:

  • дата последнего запуска — если в режиме периодичности то будет выведено время последнего запуска;
  • дата и время следующего запуска  — время старта работы агента, если он не переидический то выполнится 1 раз в это время;
  • признак активности думаю понятно;
  • модуль можно указывать, можно нет, в чем разница хз;
  • функция агента, это основное поле, у нас функция называется testAgent(); так и пишем в него;
  • ID пользователя — не приходилось пользоваться, но думаю это фильтр на хите для определенного пользователя, весьма полезно;
  • сортировка понятно;
  • периодический, интервал (сек) — вот тут и задается режим периодичности, ставим галку и указываем интервал в секундах.

Сама функция будет выглядеть так, для теста самое оно:

function testAgent()
{
        mail('mail@gmail.com', 'Агент', 'Агент');
        return "testAgent();";
}

Функцию добавить в файл /bitrix/php_interface/init.php

Если письмо пришло, то агент работает и можно писать свой функционал. Использовать агентов нужно осторожно, потому что они срабатывают на хите пользователя. Слишком сложные и ресурсоемкие скрипты лучше вынести на крон.

Чтобы перевести часть агентов на крон, а именно приодические, есть заметка от Максима Смирнова.

  • Sergey

    в /bitrix/php_interface/ файла init.php нет. Я его создал и добавил TestAgent(), добавил агента по инструкции. В итоге сайт перестал работать, и заработал только после удаления init.php. в /bitrix/php_interface/ru/ есть init.php. добавляя в него, и потом создавая агент через интерфейс, то агент спустя пару секунд исчезает из списка агентов. В чем тут проблема?

    • Da

      Не забывай ставить ; после название функции агента testAgent(); . И еще возвращай твоей функции название тоже с ;
      return «testAgent();»;