QNext. Таймаут рассылки

QNext. Таймаут рассылки



Что такое таймаут рассылки?

Чтобы понять что такое таймаут рассылки, необходимо понять как работают рассылки на платформе QNext. В момент старта рассылки, сначала запускается 🔗Триггер Рассылки для первого пользователя. Все реакции в этом триггере выполняются по очереди. Как только будут выполнены все реакции, будет запущен 🔗Триггер Рассылки для следующего пользователя... и так для всех пользователей по очереди из источника указанного в рассылке. Так вот временная пауза между Триггерами Рассылки для разных пользователей называется таймаутом рассылки.

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

Для чего нужен таймаут?

В документации telegram, в разделе My bot is hitting limits, how do I avoid this? сказано следующее:

  • При отправки сообщений в 1 чат, нельзя делать более 1 сообщения в секунду.
  • При отправке сообщений в разные чаты(разным людям), нельзя делать более 30 запросов в секунду.
  • Также нельзя делать в группу более 20 сообщений в минуту.

Телеграм в принципе разрешает иногда короткие всплески и выход за пределы этих лимитов, но если вы будете злоупотреблять этим, в какой то момент на запросы вашего бота telegram будет отвечать ошибкой: 429 Too Many Requests: retry after XXX, где XXX - это количество секунд. И ваш бот не сможет ничего отправлять в течении указанного в ошибке времени.

Как мне избежать блокировки от telegram?

Чтобы не получить блокировку, необходимо в рассылке указать таймаут - это количество миллисекунд, сколько бот будет простаивать, перед тем как начать выполнять 🔗Триггер рассылки для следующего пользователя. Рассмотрим пример: Необходимо в рассылке отправить каждому пользователю 2 текста и следом меню. В этом случае ваш 🔗Триггер рассылки может выглядеть так:

  • ⚡️message
  • ⚡️message
  • ⚡️sendMenu

Итак, мы имеем три реакции, которые отправляют что то юзеру в личку. У телеграмм есть ограничение не более 30 сообщений в секунду. Это значит что мы должны обрабатывать максимум 10 пользователей в секунду. Почему 10? - у нас 3 реакции на 1 пользователя, значит 10 пользователей в секунду генерируют 30 запросов. Лучше не играть с огнем, и обрабатывать не 10 пользователей в секунду, а чуть по меньше, например 8. Таймаут измеряется в миллисекундах (в 1 секунде - 1000 миллисекунд). Это значит что таймаут должен быть таким:

1000 миллисекунд / 8 пользователей = 125 миллисекунд

В настройках рассылки указываем таймаут 125.


А что если рассылка ничего не отправляет пользователям?

Если ваша рассылка не отправляет ничего пользователю, например вы хотите что то записать в профиль пользователям, тогда таймаут рассылки не нужен, лучше его убрать, чтобы рассылка обработалась как можно быстрее. Но, в любом случае в платформе есть минимальный таймаут 50 миллисекунд. Минимальный таймаут действует всегда для любых рассылок.


QNext. Документация


Report Page