Агенты

Урок 6 из 7

30 мин

Нормально

Немного теории

Для Битрикс24 отметим важную особенность в работе агентов.

С Битрикс24, как правило, работает кратно меньшее число людей, чем с большинством интернет-магазинов или сайтов на БУС.

Модули задач, бизнес-процесов, CRM и другие реализуют часть своей функциональности с помощью агентов. Задачи, которые выполняются этими агентами, в большинстве случаев очень тяжелые и занимают большой промежуток времени. Из-за этого выполнение агентов на хитах может сильно замедлять работу системы для пользователя. Кроме того, пользователи будут получать деловые письма на почту, задания бизнес-процессов, оповещения о просроченных задачах с большой задержкой.

Для бизнеса подобные задержки являются большой проблемой.

В отличие от БУС, где допускается выполнение агентов на хитах, в Битрикс24 выполнение всех агентов должно быть настроено на крон.

Основные классы для работы с Агентами:

Класс Назначение
\CAgent

Служебный класс для работы с агентами в системе.

Основные методы:

  • AddAgent
  • GetList
  • Delete

Практика

Типовые задачи, решаемые созданием своего агента в Битрикс24

Периодический обход больших объемов данных и выполнение бизнес-логики.

Пример: создание своего агента

Разработать агента, раз в сутки обходящего все задачи без активности за последнюю неделю. Во всех таких задачах должен вставляться пинг, призывающий оставить комментарий или завершить задачу. Отсутствием активности считается отсутствие комментариев.

Для решения необходимо:

  • Получить правильную выборку задач, будет интересно ;) !
  • Добавить комментарий к задаче от имени постановщика (CTaskCommentItem::add).
  • Если на сегодня все задачи закончились, пересоздать агент на полночь завтрашнего дня.
  • Если во время выполнения агента происходит любая ошибка, необходимо записать ее в лог с помощью CEventLog.
  • Выполнить миграцию.

Создание агента

28 мин

Список ресурсов

Материалы для выполнения практики

  • Исходный код примера (.zip)