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

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

37 ответов

9 просмотров

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

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

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

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

Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
с помощью чего можно бота добавить как админа в чат? (условно в боте есть кнопка, нажатие на которую приводит тебя к выбору чата и выдаче прав боту)
ηє νєямσяє
5
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Добрый день, подскажите как правильно сделать filter в backend-e. Есть модель (товар) у который связь belongsToMany (компания), компаний > 4k, поэтому выборку типа ->all(); н...
Max Dubovsky
7
А цены чем оправданы?
Lencore
7
напомните, как заменить placeholder , а не добавить содержимое ?
Artem N
4
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Карта сайта