Ivan
Да, я тоже это понял, все никак руки не дойдут, оно встречается не так часто)
Иван
если у хоронилища нет защиты от конкурентного чтения, то хер вам, а не зити
Иван
по идее может помочь лок, только у всех консьюмеров локер должен одинаково работать
Иван
и опять же, если брокер нормальный, то там этот вопрос решён
поэтому решать задачу, которая возникает из за использования неспецифичного инструмента - ну такое себе
Иван
плюс, нет однозначности, что делать с фейлами
The Ant
нормально фейлы обрабатываются.
Глянул доку, добавили туда сноску для редиса о возможных повторных обработках (раньше небыло).
Крч редис транспорт тока для 1 воркера и всё.
The Ant
я если честно не понимаю о чем ты сейчас
Юра
Хз у меня в проде.в рэбит транспорте 10 воркеров с одной очереди берут задачи пока не замечал дублирования
Юра
А еще недавно узнал про priorty queue и вообще решило всебмои проблемы с ребитом. Можно разные приоритеты сообщениям ставить работает лайк э шарм
Alexander
Ребит потому что создан для очередей, а редис нет. Все логично.
Интересно как оно с базой себя ведет, подозреваю что тоже воркеры одну таску одновременно будут забирать.
Юра
Ну в sql ты можешь сделать селект фор адейт и не париться
Юра
Не знаю что там в монге
The Ant
Алексей Анатольевич
Народ. Такая проблема. Пытаюсь работать с BoShurik/TelegramBotBundle, но документации нет, и проблема в том, что я даже не понимаю как настроить контроллер для вебхука. Можно объяснить, без выпендрежа, по простому - что там к чему. Как мне перехватить сообщение, извлечь айдишник чата и т.д.
Aleksandr
Алексей Анатольевич
примеров нет :\
Aleksandr
ты читал, как работает апи ТГ?
Алексей Анатольевич
он настроен уже у меня, благодаря этому бандлу. мне даже удалось сделать $bot->sendMessage(), но не могу понять как мне, точнее чем прочитать запрос вебхука
Алексей Анатольевич
class TelegramBotController extends AbstractController
{
#[Route('/telegram/bot/hook', name: 'telegram_bot_hook')]
public function index(LoggerInterface $logger, BotApi $bot): Response
{
// $logger->info('Query done!');\
$bot->sendMessage(55343242, 'pong');
return $this->json([
]);
}
Алексей Анатольевич
я на этот роут повесил вебхук
Aleksandr
Лёша, знаком ли тебе метод уточки?
Алексей Анатольевич
-
Aleksandr
ок, вот начнем с того, что ты пытаешься реализовать?
Алексей Анатольевич
Простой вопрос-ответ. Для начала.
Алексей Анатольевич
Бот получает команду ping, <здесь мне надо понять где и как правильно это обработать>, затем отправить ответ.
Алексей Анатольевич
Моя логика предполагает так, что вся реализация по части запросов и конфигурации, выполняется на возможностях бандла. Моя задача, понять структуру этого бандла(и того, что он взял за основу), что бы использовать его механизмы. Все это усугубляется любительским уровнем PHP и практически отсутствующим знанием ядра фреймворка. Хотя с основами symfony я вроде разобрался. Контроллер от Сущности отличить могу.
Aleksandr
Aleksandr
первый шаг - идёшь читать, что такое например "web hook"
Алексей Анатольевич
я уже настроил его
Алексей Анатольевич
я не понимаю как вызвать класс, который будет читать данные вебхука
Алексей Анатольевич
BotApi класс не делает этого))))
Aleksandr
Алексей Анатольевич
ну блин))) Прикольно.. ну ладно))) Вебхук это служба, задачами которой является направить HTTP запрос на сервер клиента. По сути это dispatcher со стороны TG, который шлет мне HTTP на указанный мною URI, данные сообщений, которые перехватывает listner бота телеги.
Aleksandr
Алексей Анатольевич
-
Алексей Анатольевич
Пожди.. хочешь сказать мне мой контроллер надо наследовать не от абстрактного по дефолту, а от его вебхук-контроллера?
Алексей Анатольевич
в том то и проблема, что по бандлу нет примеров))) ну либо я их не понимаю
Алексей Анатольевич
Блин.. народ, как с бандлами то работать?! Чет я ваще не понимаю ничего. Есть некий(BoShurik/TelegramBotBundle), не могу понять как заставить роут слушать webhook канал. Самое интересное, что маршрут бандла прописан по умолчанию. Но видимо я не понимаю как работать с его кодом.
Dima
Alexander
так сделайте без бандла
Юра
Роуты бандлов надо руками подключать
Юра
Если они там есть
Alexander
Бот это http-клиент для отправки запросов и контроллер для вебхуков. Не понимаю сложностей.
Alexander
Alexander
Alexander
Alexander
https://github.com/BoShurik/TelegramBotBundle/blob/master/src/Controller/WebhookController.php
никакой магии
Алексей Анатольевич
да есть там роут, он не работает какого то...
Алексей Анатольевич
Алексей Анатольевич
404 - Not found
Алексей Анатольевич
на него ругается хук
Alexander
php bin/console debug:router
Алексей Анатольевич
ах, да)) сек
Alexander
На скрине файл из бандла, как вы его к себе подключаете?
Алексей Анатольевич
никак, я не шарю как с бандлами работать
Алексей Анатольевич
роут есть
Алексей Анатольевич
_telegram_bot_webhook ANY ANY ANY
Alexander
так написано же в ридми добавьте в роутинг вебхук
Alexander
стоит возможно доку почитать к инструменту на котором вы задчи решаете
Alexander
https://symfony.com/doc/current/routing.html
Алексей Анатольевич
ничего не понимаю, роут же есть
Alexander
Это надо добавить в config/routes.yaml
Alexander
Роут есть в бандле, он не подключается автоматом
Alexander
Вы префикс должны свой указать
Алексей Анатольевич
так стоп, он же через свой конфиг ссылается на него
Alexander
а "свой" конфиг никак не подключается
Алексей Анатольевич
Alexander
вы должны это сделать самостоятельно в файле config/routes.yaml (или любом другом)
Алексей Анатольевич
а смысл тогда что конфиг лежит в папке routes?
Алексей Анатольевич
а
Алексей Анатольевич
Алексей Анатольевич
ладно, спс. Почитаю доки
Alexander
В банлдле конфиг роутинга, в нем один роут описан
Alexander
path: /
Alexander
это значит что он будет доступен по адресу domain.com/
Алексей Анатольевич
да это я понимаю
Алексей Анатольевич
но он не доступен)))
Alexander
в ридми написано - подключите наш конфиг роутинга (ресурс) и укажите свой префикс (prefix)