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

Привет, подскажите как запустить две задачи в асинхронном режиме -

бот pyrogram и websocket сервер? И возможно ли это? Вот пример https://pastebin.com/rNx5iTzt понимаю что запускаю бота pyrogram неправильно, как правильно не могу найти и понять

49 ответов

70 просмотров

попробуй через таски https://docs.python.org/3/library/asyncio-task.html#creating-tasks

Acc- Автор вопроса

Как понять в асинхронном режиме ?

Acc- Автор вопроса
antonio salieri
Как понять в асинхронном режиме ?

Когда задачи выполняются одновременно не блокируя друг друга

Acc
Когда задачи выполняются одновременно не блокируя ...

Можно в докер композ завернуть или в разных процессах запускать . Модуль multiprocessing

Acc- Автор вопроса

А зачем тебе вообще пирограм? Вещь, так скажем, специфическая

Tishka17
А зачем тебе вообще пирограм? Вещь, так скажем, сп...

Тоже самое могу сказать про дата классы

Acc
Хотелось бы именно асинхронно сделать

Я может специфику не понимаю: у тебя тг бот и веб сокет сервер. Как они взаимодействует

Почему бы для тгбота не взять обычную либу, работающую с ботапи

Я просто не понял откуда взялось что у него бот? Я не вижу даже в коде авторизации через токен

Тогда с чего ты решил, что датаклассы специфическая вещь и зачем вообще влез с этим в разговор?

Tishka17
Тогда с чего ты решил, что датаклассы специфическа...

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

Василий
Ну по моему мнению, а пирограмм даже я когда-то ис...

Юзербот это буквально нарушение правил использования аккаунтов. Для ботов акки создаются через botfather

Acc- Автор вопроса
MagMigo
попробуй через таски https://docs.python.org/3/lib...

Пытаюсь запихнуть в create_task(), вебсокет сервер добавляется и работает, pyrogram не хочет: https://pastebin.com/AnsQRBr3: выдает RuntimeWarning: coroutine 'Start.start' was never awaited self.start() RuntimeWarning: Enable tracemalloc to get the object allocation traceback Подскажите пож-та что делаю не так

Acc- Автор вопроса
Acc
Пытаюсь запихнуть в create_task(), вебсокет сервер...

подозреваю проблема в том что pyrogram запускается app = Client("ХХХХХХХХ") app.run() И его нельзя просто так добавить в task

Acc- Автор вопроса
Tishka17
Почему бы для тгбота не взять обычную либу, работа...

Потому что бот апи это прослойка по факту более медленная чем mtprotoapi

Acc- Автор вопроса
Tishka17
Я просто не понял откуда взялось что у него бот? Я...

Если авторизация прошла, для повторного подключения токен уже не нужен, достаточно имя сессии.

Acc- Автор вопроса
Acc
Пытаюсь запихнуть в create_task(), вебсокет сервер...

подозреваю проблема в том что pyrogram запускается app = Client("ХХХХХХХХ") app.run() И его нельзя просто так добавить в task. Но как сделать правильно не могу понять, подскажите пож-та

А как ты собираешься горизонтальное масштабирование делать с mtproto?

Acc- Автор вопроса
Tishka17
А как ты собираешься горизонтальное масштабировани...

mtproto позволяет использовать много параллельных сессий для бота в отличие от ботапи. если ты про это

Acc- Автор вопроса
Tishka17
А как ты собираешься горизонтальное масштабировани...

можешь дать совет как запустить код через таск?

Acc
mtproto позволяет использовать много параллельных ...

Насколько я знаю, не позволяет. То есть попытаться можно, но телега не это реагирует не очень. Сам не проверял

Acc
позволяет

Пойду спрошу у ребят

Acc- Автор вопроса
Tishka17
Пойду спрошу у ребят

спроси пож-та если есть возможность как завернуть запуск такого кода в таск asyncio from pyrogram import Client app = Client("my_account") app.run()

Acc
спроси пож-та если есть возможность как завернуть ...

https://t.me/tdlibchat/60877 Вот тут какое-то обсуждение двух сессий для бота. Судя по всему это не особо приветствуется и может не работать.

Acc
спроси пож-та если есть возможность как завернуть ...

Так а действительно зачем тебе пирограм?

Acc- Автор вопроса
Tishka17
https://t.me/tdlibchat/60877 Вот тут какое-то обс...

так на скрине ботапи. http прослойка перед mtproto. ботапи не позволяет мультисессии. я говорил про mtproto

Acc
так на скрине ботапи. http прослойка перед mtproto...

Там дальше ещё какое-то обсуждение, но согласен явного ответа не видно

Acc- Автор вопроса
Tishka17
Так а действительно зачем тебе пирограм?

чтоб по mtproto работать с ботом ж))

Acc- Автор вопроса
Tishka17
Делать вам нечего :)

помогите запихнуть его старт в таск асинка))

Acc
помогите запихнуть его старт в таск асинка))

Я все ещё считаю, что проще было взять bot api + aiohttp и посылать через него. Ковыряться в пирограме очень лениво, они там такое наворотил для асинкио что прям хз даже

Acc- Автор вопроса
Tishka17
Я все ещё считаю, что проще было взять bot api + a...

мало функционала и медленно. уже смотрю на aiogram, он тоже умеет mtproto и вроде человеческий запуск через asyncio

Acc
мало функционала и медленно. уже смотрю на aiogram...

Aiogram не умеет мтпрото, это именно ботапи

Acc
мало функционала и медленно. уже смотрю на aiogram...

скорее наоборот насчет скорости, для мтпрото данные то ширфуются дополнительно

ZeN
скорее наоборот насчет скорости, для мтпрото данны...

Нет. Ботапи это буквально клиент мтпрото, предоставляющий доступ к своим фичам по хттп

Acc- Автор вопроса
Tishka17
Нет. Ботапи это буквально клиент мтпрото, предоста...

Ну вот в этом и медленно по идее. Даже не хочется тестить чесговоря

Acc- Автор вопроса
Tishka17
Aiogram не умеет мтпрото, это именно ботапи

да, действительно. хабр обманул

Acc
Ну вот в этом и медленно по идее. Даже не хочется ...

То есть никаких замеров ты не делал?

Acc
Ну вот в этом и медленно по идее. Даже не хочется ...

Я бы предложил не ебать мозг с пирограмом, а взять аиограм. Будет более поддерживаемое решение, возможность масштабирования. А пирограм это скорее поиграться. Ты сессию даже между серверами таскать задолбаешься в реальном деплое

Acc- Автор вопроса
Tishka17
То есть никаких замеров ты не делал?

Нет. И не хочу) запросами пихать команды точно будет медленнее

Acc
Нет. И не хочу) запросами пихать команды точно буд...

Предлагаю тебе тогда пойти писать на си, а не питоне. Будет быстрее работать

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

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

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
Карта сайта