Кто ни будь делал получение обновлений в отдельном воркере? есть

ли пример реализации? Понятно что нужно запускать второй экземпляр бота и передавать обновы через handleUpdate, но есть ли какие то подводные камни?

37 ответов

14 просмотров

а для каких целей воркер?

Hars- Автор вопроса
Saturn
а для каких целей воркер?

Цель простая, в режиме pooling получать новые обновление не дожидаясь обработчики старых, у меня в боте логика такая что есть задержка между ответом, 5-10 секунд, это по сути "блокирует" получения новых обновлений

Hars- Автор вопроса
meow *
юзай асинхронность

Изучай архитектуру telegraf.js

Hars- Автор вопроса
meow *
и чё тут не так?

Ну тогда прочитайте мое сообщение

Hars- Автор вопроса
Hars
Цель простая, в режиме pooling получать новые обно...

так может ответы в воркер вынести, елси очень хочется

Hars- Автор вопроса
Saturn
так может ответы в воркер вынести, елси очень хоче...

Ну тут по сути без разницы что выносить, интересует именно какие могут быть подводные камни? К примеру обработка от одного юзера должно быть строго по очереди, чтобы не было состояние гонки

Hars- Автор вопроса
Hars
Что именно?

Такие задержки

Hars- Автор вопроса
Arthur
Такие задержки

Ну это не задержка по сути, в этот момент идёт большая работа с json rpc, а там скорость у ноды такая себе. Проект связан с tezos

Hars
я видел

https://t.me/telegraf_ru/132681

Hars- Автор вопроса
Oscar S
https://t.me/telegraf_ru/132681

да я видел это, но решение там о сути нет, кроме вебхука, а я хотел именно pooling

Hars- Автор вопроса
Oscar S
как нет?

один раз глобально (работает только в 3 версии, в 4 эту фичу полностью выпилили, в угоду "безопасности") const bot = Telegraf(token, { handlerTimeout: 100 })

Hars- Автор вопроса
Hars- Автор вопроса
Oscar S
?

Статья 51. Никто не обязан свидетельствовать против себя самого...

Hars
тут нас не любят)

если 4 версия, то там тоже есть лазейка, пока не накатили патч (возможно не накатят), можешь доработать, и прикрутить спец очередь https://github.com/telegraf/telegraf/pull/1296

Hars- Автор вопроса
Oscar S
если 4 версия, то там тоже есть лазейка, пока не н...

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

Hars- Автор вопроса
Oscar S
зачем воркер?

ну можно и без ворека, просто второй инстанс new Telegraf

Hars
ну можно и без ворека, просто второй инстанс new T...

не могу догнать зачем, у тебя там чтоли биткоин считает сервер?

Hars- Автор вопроса
Oscar S
не могу догнать зачем, у тебя там чтоли биткоин сч...

rpc долго отвечает, надо ждать, а пока ждешь он новые не берет

Hars- Автор вопроса
Oscar S
так это IO

я знаю, но мне нужно ждать пока rpc отвечает, пока я жду, он же новые не берет, а хочу чтоб взял, тогда вариант, либо вебхук, либо вручную через callApi получать и ему через handleUpdates отдавать

Hars
я знаю, но мне нужно ждать пока rpc отвечает, пока...

нет, я тебе не просто так отправил ссылку на патч

Hars
я знаю, но мне нужно ждать пока rpc отвечает, пока...

можно перегрузить класс Telegraf, и сделать также как в 3 версии https://github.com/ioscars/telegraf-starter/commit/47059bf7dc3330bfe5190ce3ff62b04eb815677b#diff-407ce1c4de4ad023ddb3930497b90b8c0ca458d9a6096cea80abe06692d250c9

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
Карта сайта