Немного теории
Для Битрикс24 отметим важную особенность в работе агентов.
С Битрикс24, как правило, работает кратно меньшее число людей, чем с большинством интернет-магазинов или сайтов на БУС.
Модули задач, бизнес-процесов, CRM и другие реализуют часть своей функциональности с помощью агентов. Задачи, которые выполняются этими агентами, в большинстве случаев очень тяжелые и занимают большой промежуток времени. Из-за этого выполнение агентов на хитах может сильно замедлять работу системы для пользователя. Кроме того, пользователи будут получать деловые письма на почту, задания бизнес-процессов, оповещения о просроченных задачах с большой задержкой.
Для бизнеса подобные задержки являются большой проблемой.
В отличие от БУС, где допускается выполнение агентов на хитах, в Битрикс24 выполнение всех агентов должно быть настроено на крон.
Основные классы для работы с Агентами:
Класс | Назначение |
---|---|
\CAgent | Служебный класс для работы с агентами в системе. Основные методы:
|
Практика
Типовые задачи, решаемые созданием своего агента в Битрикс24
Периодический обход больших объемов данных и выполнение бизнес-логики.
Пример: создание своего агента
Разработать агента, раз в сутки обходящего все задачи без активности за последнюю неделю. Во всех таких задачах должен вставляться пинг, призывающий оставить комментарий или завершить задачу. Отсутствием активности считается отсутствие комментариев.
Для решения необходимо:
- Получить правильную выборку задач, будет интересно ;) !
- Добавить комментарий к задаче от имени постановщика (CTaskCommentItem::add).
- Если на сегодня все задачи закончились, пересоздать агент на полночь завтрашнего дня.
- Если во время выполнения агента происходит любая ошибка, необходимо записать ее в лог с помощью CEventLog.
- Выполнить миграцию.
Создание агента
28 мин
Список ресурсов
Материалы для выполнения практики
- Исходный код примера (.zip)