169 похожих чатов

Всем привет! Я разрабатываю телеграм-бот с использованием рельсов (вебхук). Если

здесь есть разработчики ботов, то как вы справляетесь с обработкой большого количества запросов, чтобы не было потерь?
Также как вы контролируете не превышение лимитов телеграма (30 юзеров в секунду и 1 действие пользователя в секунду) с учётом, что запросы обрабатываются асинхронно?

17 ответов

41 просмотр

> но есть ещё Rake задачи по хрону Ну так перекинь в sidekiq-scheduler. > И как сделать так, чтобы эта очередь обрабатывалась где-то отдельно и параллельно? Sidekiq

Артем- Автор вопроса
Alex Ilizarov
> но есть ещё Rake задачи по хрону Ну так перекин...

Спасибо за ответ. Прошу прощения, что задаю столь глупые вопросы, так как я новичок. Я посмотрел гем, но я так и не понял, как контролировать количество отправленных сообщений в секунду, чтобы не превысить лимит? Воркер же обрабатывает задачи асинхронно и sleep внутри него точно не спасёт

Записывать в память счетчик для конкретного пользователя и если лимит превышен - кидать ошибку. Сайдкик будет делать ретрай

Артем- Автор вопроса
Alex Ilizarov
Записывать в память счетчик для конкретного пользо...

не, про пользователя я понял. Я не понял, что делать, если много пользователей. Также?

Артем
не, про пользователя я понял. Я не понял, что дела...

Записывать в память счетчик для конкретного пользователя и если лимит превышен - кидать ошибку. Сайдкик будет делать ретрай

Артем
не, про пользователя я понял. Я не понял, что дела...

Я не понимаю твоего вопроса, у тебя на каждого пользователя свой счетчик

Артем
Спасибо за ответ. Прошу прощения, что задаю столь ...

Гуглить про rate limiters, уточнить вообще , что надо вообще этот лимит делать или просто поднять еще процессы сайдкика, чтобы очередь не собиралась.

Артем- Автор вопроса
Alex Iv
Гуглить про rate limiters, уточнить вообще , что н...

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

Артем
Да уже неделю гуглю про них... Пока что я из отве...

Видел тогда что пишут про принципы типа leaking bucket? Зачем вообще ограничивать то надо запросы?

Артем- Автор вопроса
Alex Iv
Видел тогда что пишут про принципы типа leaking bu...

телега не позволяет отправлять больше 30 сообщений в секунду иначе начинает тормозить отправку сообщений

Артем
телега не позволяет отправлять больше 30 сообщений...

Делай через сайдкик скедулер. Вызывай по 20 Джош каждую секунду и все.

https://github.com/sidekiq-scheduler/sidekiq-scheduler

Alex Ilizarov
Шедулер тут не в тему

Это коробочник решение, болт он для его задачи как мне кажется.

Alex Iv
Это коробочник решение, болт он для его задачи как...

тут тебе надо убедиться что твои 130 сообщений burst не превысят лимит телеги в 30 сообщений в минуту. Как тут sidekiq-scheduler поможет?

Alex Ilizarov
тут тебе надо убедиться что твои 130 сообщений bur...

Записывать сообщения в очередь и вытаскивать по 30 в минуту.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта