Дедупликация выполнения

Предотвращение повторного выполнения одинаковых действий при автоматическом запуске бота

Введение

Дедупликация выполнения предотвращает повторное выполнение одинаковых действий при автоматическом запуске бота по расписанию (Cron триггер). Это особенно полезно, когда бот запускается часто, но должен выполнять действия только при определенных условиях или с определенной периодичностью.

Настройки дедупликации находятся в разделе "Дедупликация выполнения" при создании или редактировании бота.

Стратегии дедупликации

Не использовать (всегда выполнять)

При выборе этой стратегии бот будет выполняться каждый раз при срабатывании триггера, независимо от предыдущих выполнений. Используйте эту стратегию, если:

  • Бот должен выполняться при каждом запуске
  • Действия бота не дублируются (например, каждый раз генерируется новый отчет)
  • Дедупликация не требуется

Временное окно

При выборе этой стратегии бот не будет выполняться, если уже было успешное выполнение с действием в указанном временном окне. Используйте эту стратегию, если:

  • Бот должен выполнять действия с определенной периодичностью
  • Нужно избежать дублирования действий при частых запусках
  • Действия должны выполняться не чаще определенного интервала

Например, если временное окно установлено в 60 минут, и бот уже выполнился с действием 30 минут назад, новый запуск будет пропущен.

Временное окно

Временное окно определяет минимальное время в минутах между выполнениями с действием. Если выбрана стратегия "Временное окно", укажите:

  • Временное окно (минуты) — минимальный интервал между выполнениями с действием

Примеры:

  • 60 минут — бот не будет выполняться повторно, если уже было успешное выполнение с действием в последние 60 минут
  • 1440 минут (24 часа) — бот не будет выполняться повторно, если уже было успешное выполнение с действием в последние 24 часа
  • 15 минут — бот не будет выполняться повторно, если уже было успешное выполнение с действием в последние 15 минут

Временное окно применяется только к выполнениям, где были вызваны функции-действия (см. ниже). Если функции-действия не выбраны, учитываются все успешные выполнения.

Функции-действия

Функции-действия — это функции, вызов которых считается "действием" для целей дедупликации. Только выполнения, где были вызваны эти функции, будут учитываться для дедупликации.

Например, если вы выбрали функцию "Отправить сообщение в Telegram" как функцию-действие, дедупликация будет учитывать только те выполнения, где эта функция была вызвана.

Выбор функций-действий

В разделе "Функции-действия" выберите функции, которые считаются действиями:

  1. Раскройте раздел "Дедупликация выполнения"
  2. Выберите стратегию "Временное окно"
  3. В разделе "Функции-действия" установите галочки напротив нужных функций
  4. Сохраните изменения

Если не выбрано ни одной функции, все успешные выполнения будут учитываться для дедупликации.

Когда использовать функции-действия

Используйте функции-действия, если:

  • Бот выполняет несколько разных типов действий, и вы хотите дедуплицировать только определенные
  • Некоторые функции должны выполняться чаще других
  • Нужна более точная настройка дедупликации

Например, если бот отправляет отчеты и проверяет статусы, вы можете выбрать только функцию отправки отчетов как функцию-действие, чтобы отчеты не дублировались, а проверки статусов выполнялись при каждом запуске.

Примеры использования

Пример 1: Ежедневный отчет

Бот должен отправлять отчет каждый день, но запускается каждые 6 часов:

  • Стратегия: "Временное окно"
  • Временное окно: 1440 минут (24 часа)
  • Функции-действия: "Отправить сообщение в Telegram"

Бот будет отправлять отчет только один раз в день, даже если запускается 4 раза.

Пример 2: Периодическая проверка с уведомлениями

Бот проверяет статусы каждые 2 часа, но отправляет уведомления не чаще раза в час:

  • Стратегия: "Временное окно"
  • Временное окно: 60 минут
  • Функции-действия: "Отправить уведомление"

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

Пример 3: Без дедупликации

Бот должен выполняться при каждом запуске:

  • Стратегия: "Не использовать (всегда выполнять)"

Бот будет выполняться каждый раз, независимо от предыдущих выполнений.

Связанные темы

Мы используем cookies для улучшения работы сайта. Продолжая пользоваться сайтом, вы соглашаетесь с политикой использования cookies.