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

В статье:
Что такое зацикленности
Зацикленности — это частые и многократные вхождения в один и тот же блок, происходящие как напрямую, так и через цепочку блоков.
Каждый цикл увеличивает нагрузку на систему, так как требует периодической проверки данных. Поэтому мы советуем по возможности создавать процессы без циклов.


Основными причинами возникновения зацикленностей являются следующие ситуации:
- условие завершения цикла не указано или не проверяется;
- условие завершения цикла недостижимо;
- переменная-счетчик цикла остается неизменной;
- Таймауты и ограничения на количество итераций отсутствуют.
Влияние зацикленностей на систему
Зацикленности приводят к задержкам при выполнении задач и затрудняют работу с ними из-за повторяющихся записей в истории.
Если логика процесса включает действия, приводящие к зацикленности, то такой процесс нуждается в доработке и оптимизации.
Ошибочные процессы замедляют выполнение задач и работу вашего аккаунта в целом.


Как найти процессы с ошибками
Для обозначения процессов с ошибками применяются следующие статусы:
- ⚠️ Ошибка в процессе
- ❌ Процесс забанен
Эти статусы могут отображаться:
- в списке процессов,
- на вкладке «Общее» процесса.
Учтите, что работать с процессами могут:
- владелец аккаунта,
- администраторы.


Если в аккаунте обнаружены процессы с ошибками, на странице списков процессов появится вкладка «Ошибки в процессах». На этой вкладке будут показаны все процессы, требующие исправления.

Также в системе реализовано уведомление, информирующее администраторов о процессах с ошибками.

Предупреждение в истории исполнения задачи
В истории выполнения задачи может отображаться сообщение: «Более 3 вхождений за один запуск. Похоже, имеется зацикливание.»
Сообщение появляется, если в блоке наблюдаются частые повторные вхождения, и вызывает автоматическое завершение задач в процессе.
в истории выполнения задачи помогает обнаружить ошибки на этапе тестирования процесса.


Какие последствия могут нести ошибки в процессах
1. Замедление системы
Выполнение процессов становится медленнее, если один из них часто обращается к системе.
Обращение к системе означает осуществление проверки или изменение свойств объекта, например:
- изменение статуса заказа,
- проверка фамилии ученика,
- продление покупки.
Для оценки общей нагрузки нужно учитывать два фактора:
- число обращений в пределах одной задачи процесса;
- число задач, выполняемых одновременно.
Таким образом, зацикливания создают нагрузку в рамках каждой задачи, однако важно учитывать общее число задач.
Важно
- Высокая нагрузка в одном процессе может привести к замедлению работы других процессов и общего функционирования аккаунта.
- Чем чаще выполняются операции проверки условий для объектов, тем больше расходуются ресурсы системы.
- Если в вашем процессе требуются частые проверки, учитывайте общее влияние на систему. Это может приводить к задержкам в проекте.
В качестве примера рассмотрим 2 процессакоторые предоставляют бонусы пользователям:
- Процесс, стартующий в определенную дату для всех пользователей, завершивших тренинг.
- Процесс, инициирующийся отдельно для каждого пользователя после принятия задания в последнем уроке.


Второй процесс создает меньшую одновременную нагрузку, поскольку задачи запускаются в разное время по мере завершения последнего урока пользователями.
Нагрузка будет ниже, даже если процесс включает более сложную логику.
Если вы планируете процесс со сложной логикой, [перейти ↓].
2. Бан процесса
Процесс может быть полностью приостановлен, если его влияние крайне негативно сказывается на производительности системы.
Такая ситуация может возникнуть в следующих случаях:
- процесс имеет бесконечные циклические повторения;
- в процессе реализована логика, создающая множество обращений к системе и увеличивающая ее нагрузку.
Задачи по данному процессу остаются в статусе «Отложена», а в колонке «Результат» для блоков отсутствует значение.
Важно
- При обнаружении зацикленных процессов администраторам отправляется уведомление, а также выделяется время на их устранение.
- При наличии ошибок в составлении процесса и отсутствии мер по его исправлению, он может быть принудительно остановлен.

Советы по исправлению ошибок в процессах
- Если вы применяете блок «Задержка», задайте для него значение не менее 5 минут.
Данный интервал позволяет обновлять данные в системе перед проверкой и предотвращает чрезмерное обращение к базе данных.

- Поменяйте блоки «Задержка» на блоки «Ожидание условия». Для этих блоков предусмотрен отдельный выход при достижении заданного времени (таймаута), что предотвращает бесконечное выполнение цикла, даже если основное условие не будет выполнено
Также блок «Ожидание условия» проверяет условия по оптимальному расписанию и не требует дополнительных задержек.

- Проверьте, что условие выхода из цикла задано корректно и является достижимым.
- При использовании переменной для завершения цикла убедитесь, что её значение обновляется на каждой итерации.
Также рекомендуется сбросить значение переменной перед началом цикла.

- Проверьте процессы перед запуском.
Что делать, если не удается устранить ошибки самостоятельно
Если вы не можете самостоятельно исправить ошибки в процессе, обратитесь в нашу техподдержку.
В постах канала показываем, как цифры превращаются в решения: где реально идёт выручка, а где утечки. «Один график в боте экономит часы споров». Больше коротких приёмов и кейсов внутри.
авторизуйтесь