ли пример реализации? Понятно что нужно запускать второй экземпляр бота и передавать обновы через handleUpdate, но есть ли какие то подводные камни?
а для каких целей воркер?
Цель простая, в режиме pooling получать новые обновление не дожидаясь обработчики старых, у меня в боте логика такая что есть задержка между ответом, 5-10 секунд, это по сути "блокирует" получения новых обновлений
юзай асинхронность
Изучай архитектуру telegraf.js
и чё тут не так?
Composer тебе в помощь
Ну тогда прочитайте мое сообщение
так может ответы в воркер вынести, елси очень хочется
Ну тут по сути без разницы что выносить, интересует именно какие могут быть подводные камни? К примеру обработка от одного юзера должно быть строго по очереди, чтобы не было состояние гонки
Это как у тебя такое вышло
Что именно?
Такие задержки
Ну это не задержка по сути, в этот момент идёт большая работа с json rpc, а там скорость у ноды такая себе. Проект связан с tezos
Я сверху расписывал эту проблему
https://t.me/telegraf_ru/132681
да я видел это, но решение там о сути нет, кроме вебхука, а я хотел именно pooling
один раз глобально (работает только в 3 версии, в 4 эту фичу полностью выпилили, в угоду "безопасности") const bot = Telegraf(token, { handlerTimeout: 100 })
у тебя 4 версия?
51 статья
тут нас не любят)
если 4 версия, то там тоже есть лазейка, пока не накатили патч (возможно не накатят), можешь доработать, и прикрутить спец очередь https://github.com/telegraf/telegraf/pull/1296
так я про это по сути и говорил, но получать обновление через отдельный воркер (можно и без воркера по сути, так как у меня операции асинхронные), но через второй инстанс бота (потому что когда он обрабатывает обновление, при попытке получить новые будет ошибка конфликта).
ну можно и без ворека, просто второй инстанс new Telegraf
не могу догнать зачем, у тебя там чтоли биткоин считает сервер?
rpc долго отвечает, надо ждать, а пока ждешь он новые не берет
я знаю, но мне нужно ждать пока rpc отвечает, пока я жду, он же новые не берет, а хочу чтоб взял, тогда вариант, либо вебхук, либо вручную через callApi получать и ему через handleUpdates отдавать
нет, я тебе не просто так отправил ссылку на патч
можно перегрузить класс Telegraf, и сделать также как в 3 версии https://github.com/ioscars/telegraf-starter/commit/47059bf7dc3330bfe5190ce3ff62b04eb815677b#diff-407ce1c4de4ad023ddb3930497b90b8c0ca458d9a6096cea80abe06692d250c9
Офигеть как легко делается дилей
Обсуждают сегодня