Чёрная пятница в GetCourse! Самые большие скидки за историю платформы
СМОТРЕТЬ
Чёрная пятница в GetCourse! Самые большие скидки за историю платформы
СМОТРЕТЬ
Чёрная пятница в GetCourse! Самые большие скидки за историю платформы
СМОТРЕТЬ
Чёрная пятница в GetCourse! Самые большие скидки за историю платформы
СМОТРЕТЬ
Чёрная пятница в GetCourse! Самые большие скидки за историю платформы
СМОТРЕТЬ
Чёрная пятница в GetCourse! Самые большие скидки за историю платформы
СМОТРЕТЬ
Чёрная пятница в GetCourse! Самые большие скидки за историю платформы
СМОТРЕТЬ
ИИ-бот GetCourse
ИИ-бот
Добрый день!
Я - бот-помощник по документации платформы Getcourse, помогу вам найти ответ на справочный вопрос по работе системы. Пожалуйста, сформулируйте свой вопрос одним сообщением.
Статья была полезной?
Процессы, построенные с ошибками, например, с зацикленностями, замедляют работу вашего аккаунта, в следствие чего могут быть заблокированы.
Если в ваших процессах присутствуют такие ошибки, вы увидите в аккаунте соответствующее предупреждение о необходимости их исправления. В статье расскажем, как найти такие процессы и откорректировать их работу.
Что такое зацикленности
Зацикленности — это частые и многократные вхождения в один и тот же блок, происходящие как напрямую, так и через последовательность блоков.
База знаний
Любой цикл создает повышенную нагрузку на систему, так как подразумевает периодическую проверку данных. Поэтому мы рекомендуем по возможности составлять процессы без использования циклов.
К основным причинам возникновения зацикленностей можно отнести следующие ситуации:
- условие выхода из цикла не прописано или не проверяется;
- условие выхода из цикла недостижимо;
- не изменяется переменная, которая является счетчиком цикла;
- отсутствие таймаутов или ограничения на количество итераций.
Влияние зацикленностей на систему
Зацикленности вызывают задержки в выполнении задач и осложняют работу с ними из-за многократно дублирующихся записей в истории.
Если в логике процесса содержатся действия, которые приводят к зацикленности, то такой процесс требует исправлений и оптимизации.
Важно
Процессы с ошибками замедляют не только исполнение задач, но и работу вашего аккаунта в целом.
Как найти процессы с ошибками
Для обозначения процессов с ошибками используются следующие статусы:
- ⚠️ Ошибка в процессе
- ❌ Процесс забанен
Данные статусы могут отображаться:
- в списке процессов,
- на вкладке «Общее» процесса.
Обратите внимание, что работать с процессами могут:
Если в аккаунте найдены процессы с ошибками, на странице со списками процессов будет отображаться вкладка «Ошибки в процессах». На данной вкладке будут отображаться все процессы, которые требуют исправления.
Также в системе предусмотрено уведомление для администраторов о наличии процессов с ошибками.
Предупреждение в истории исполнения задачи
В истории исполнения задачи может отображаться сообщение: «Более 3 вхождений в одном запуске. Похоже, что есть зацикливание».
Данное сообщение возникает, если происходят частые повторные вхождения в блок, и приводит к автоматическому завершению задач по процессу.
База знаний
Предупреждение в истории исполнения задачи позволяет выявить ошибки на этапе тестирования процесса.
Рекомендуем перед запуском процесса проверять его на тестовых объектах.
Какие последствия могут нести ошибки в процессах
1. Замедление системы
Выполнение по процессам замедляется, если какой-то из процессов часто обращается к системе.
Обращением к системе считается проверка или изменение свойств объекта, например:
- изменение статуса заказа,
- проверка фамилии ученика,
- продление покупки.
Для оценки общей нагрузки необходимо учитывать 2 фактора:
- количество обращений в рамках одной задачи по процессу;
- количество одновременно исполняемых задач.
Таким образом зацикливания создают нагрузку в рамках каждой отдельной задачи. Но при этом необходимо учитывать общее количество задач.
Важно
- Избыточная нагрузка в одном процессе может замедлить работу других процессов и работу аккаунта в целом.
- Чем чаще выполняются операции\проверки условий по объектам, тем больше используется ресурсов системы. Рекомендуем учитывать это при построении процессов.
- Если в вашем процессе необходимы частые проверки, учитывайте общее воздействие на систему. Это может вызвать задержки в вашем проекте.
Для примера рассмотрим 2 процесса, которые выдают пользователям бонусы:
- Процесс, который запускается в определенную дату для всех пользователей, завершивших тренинг.
- Процесс, который запускается отдельно для каждого пользователя после принятия задания в последнем уроке.
Второй процесс будет создавать меньше единовременной нагрузки, так как задачи будут запускаться в разное время по мере прохождения пользователями последнего урока.
Нагрузка будет меньше, даже если в таком процессе более сложная логика.
Если вы планируете процесс со сложной логикой, рекомендуем использовать блоки, которые обеспечат задержку между обращениями к системе. Подробнее эта тема описана в разделе рекомендаций данной статьи [перейти ↓].
2. Бан процесса
Процесс может быть полностью остановлен, если он крайне негативно влияет на производительность системы.
Такая ситуация может произойти в следующих случаях:
- процесс содержит бесконечные зацикливания;
- в процессе реализована логика, которая создает много обращений к системе и нагружает ее.
Задачи по такому процессу остаются в статусе «Отложена», а значение в колонке «Результат» для блоков отсутствует.
Важно
- При обнаружении зацикленных процессов создается уведомление для администраторов и выделяется время на исправление.
- Если процесс составлен с ошибками и не принимаются мероприятия по его исправлению, то он может быть принудительно остановлен.
Советы по исправлению ошибок в процессах
- Если вы используете блок «Задержка», устанавливайте для него значение не менее 5 минут.
Такой интервал обеспечит обновление данных в системе перед проверкой и исключит слишком частые обращения к базе данных.
- Замените блоки «Задержка» на блоки «Ожидание условия». Для данных блоков предусмотрен отдельный выход после наступления определенного времени (таймаута), что позволит избежать бесконечной работы цикла, даже если основное условие выхода не может быть выполнено
Также блок «Ожидание условия» выполняет проверку условий по оптимальному расписанию и не требует отдельных задержек.
- Убедитесь, что условие выхода из цикла прописано корректно и может быть достигнуто.
- Если для выхода из цикла используется переменная, убедитесь, что ее значение изменяется при каждой итерации.
Также рекомендуется «обнулить» значение переменной перед началом цикла.
- Тестируйте процессы перед запуском. Подробная информация о тестировании процесса в другой статье нашего блога ➡ «Как протестировать процесс».
Что делать, если не удается устранить ошибки самостоятельно
Если вам не удается самостоятельно исправить ошибки в процессе, вы можете обратиться в нашу техподдержку.
авторизуйтесь
Да, ошибка будет зафиксирована на 4-ый раз. На данный момент нет возможности обозначить "допустимый" интервал вхождений.
Обратите, пожалуйста, внимание: рекомендуется избегать настроек, которые приведут к зацикленности действий - независимо от интервала вхождений.
1) ссылку на процесс, о котором идет речь;
2) ссылку на пример пользователя, которому было отправлено письмо о скором начале вебинара;
3) ссылку на сам автовебинар.
Использование зацикливаний в процессах может вызвать задержки при выполнении задач процесса. Необходимо использовать альтернативные варианты построения процесса. Вы можете описать необходимую задачу нашей технической поддержке https://getcourse.ru/contacts , мы предложим возможные варианты.
Не просматривать же все процессы и все задачи подряд?
Определить, в каких именно процессах/задачах присутствуют зацикленности, на текущий момент, можно лишь при переходе к конкретным процессам/задачам и их анализе.