Size: a a a

2020 February 09

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
Nick Name
дароу. задача запустить 20 одинаковых ботов на разных токенах. вопрос: как лучше запустить: 20 отдельных файлов, или в одном файле создать лист с 20 бот и диспетчер классами, потом циклом подобавлять хендлеры командой add_handler(как то так. не помню), а потом запустить поллинг тоже циклом фор?
менеджер процессов можно юзать или через докер
если с докером, то можно наклепать 20 сервисов в докер-компоуз файле каждый из которых отличается только на env var'ом с токеном

у менеджера процессов (supervisord, pm2, ...) приметрно такая же страта, в конфиге указываешь 20 процесов для запуска

если хочешь через питон делать то тебе нужен multiprocessing, циклом спавнишь 20 функций и передаешь туда аргумент с токеном
p = multiprocessing.Process(target=start_bot, args=(token,))
p.start()
источник

N

Nick Name in aiogram [ru]
𝖓𝖎𝖊𝖒𝖆𝖓𝖉
менеджер процессов можно юзать или через докер
если с докером, то можно наклепать 20 сервисов в докер-компоуз файле каждый из которых отличается только на env var'ом с токеном

у менеджера процессов (supervisord, pm2, ...) приметрно такая же страта, в конфиге указываешь 20 процесов для запуска

если хочешь через питон делать то тебе нужен multiprocessing, циклом спавнишь 20 функций и передаешь туда аргумент с токеном
p = multiprocessing.Process(target=start_bot, args=(token,))
p.start()
про мультипроцессинг знаю, но вот не знаю будет ли разница в использовании памяти мультипроцессингом или просто запуская 20 файлов?
источник

Е

Евгений in aiogram [ru]
а как так, обновил поле в mysql, через python вытянул значение - а оно старое, юзал command line client
источник

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
большой разницы не должно быть
кроме того что у если ты отдельно 100500 файков заупскаешь, то тебе отдельно их и закрывать придется
источник

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
Евгений
а как так, обновил поле в mysql, через python вытянул значение - а оно старое, юзал command line client
либо не закомитил изменения, либо то что вытягивали закешировалось
источник

N

Nick Name in aiogram [ru]
𝖓𝖎𝖊𝖒𝖆𝖓𝖉
большой разницы не должно быть
кроме того что у если ты отдельно 100500 файков заупскаешь, то тебе отдельно их и закрывать придется
хмм, спасибо за ответ) тогда буду мультиком клепать. но от большого использования памяти никак не избавится? если как-то присобачить это всё как я описал выше, то будет ли юзаться меньше памяти?
источник

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
будет юзаться меньше памяти если сделаешь в 1 процессе 20 ботов/диспетчеров. но я хз просто насколько это выполнимо
источник

N

Nick Name in aiogram [ru]
𝖓𝖎𝖊𝖒𝖆𝖓𝖉
будет юзаться меньше памяти если сделаешь в 1 процессе 20 ботов/диспетчеров. но я хз просто насколько это выполнимо
всё до екзекютора склепать реально, но с этим экзекютором у меня не получается что-то. сразу в голову летит мысль запускать его в threading, но это асинк, как то не ахти выглядит асинк и трединг.
источник

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
когда через екзекьютор стартуешь полинг то он блочит весь луп. попробуй переопделить переопределить этот метод/создать отдельную функцию: которая насоздает в лупе таски с полингом под каждый диспатчер, а потом уже ранит_форевер
источник

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
Nick Name
всё до екзекютора склепать реально, но с этим экзекютором у меня не получается что-то. сразу в голову летит мысль запускать его в threading, но это асинк, как то не ахти выглядит асинк и трединг.
> `aiogram.utils.exceptions.TerminatedByOtherGetUpdates: Terminated by other getupdates request; make sure that only one bot instance is running
Cause exception while getting updates.`
источник

Forevka ÐΞV in aiogram [ru]
𝖓𝖎𝖊𝖒𝖆𝖓𝖉
когда через екзекьютор стартуешь полинг то он блочит весь луп. попробуй переопделить переопределить этот метод/создать отдельную функцию: которая насоздает в лупе таски с полингом под каждый диспатчер, а потом уже ранит_форевер
ребята а вы уверенны что питон вывезет 20 инстансов ботов?
источник

Forevka ÐΞV in aiogram [ru]
еще и на пулинге
источник

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
а что не так с питоном?
источник

Forevka ÐΞV in aiogram [ru]
лучше было бы сделать на вебхуках. Если боты одинаковые задачи выполняют то брать токен из пути роута и отвечать от его имени
источник

Forevka ÐΞV in aiogram [ru]
𝖓𝖎𝖊𝖒𝖆𝖓𝖉
а что не так с питоном?
производительность
источник

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
все записит от того какого рода бот
если он под капотом процессит видосы (и все при этом на питухоне лол), но будет медленно. а если простой CRUD и сплошной нетворкинг между всякими сервисами/бд/телегой то асинхронный питон будет летать, ведь весь ботлнек будет в ожидание ответа от других сервисов, а не в скорости работы питона
источник

Forevka ÐΞV in aiogram [ru]
𝖓𝖎𝖊𝖒𝖆𝖓𝖉
все записит от того какого рода бот
если он под капотом процессит видосы (и все при этом на питухоне лол), но будет медленно. а если простой CRUD и сплошной нетворкинг между всякими сервисами/бд/телегой то асинхронный питон будет летать, ведь весь ботлнек будет в ожидание ответа от других сервисов, а не в скорости работы питона
за это согласен, но всеравно странное решение работать через пулинг в таком случае
источник

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
полинг ничем не хуже вебхука ящитаю, разве что больше трафика сжирает.
источник

WJ

Wolfram Juno in aiogram [ru]
𝖓𝖎𝖊𝖒𝖆𝖓𝖉
все записит от того какого рода бот
если он под капотом процессит видосы (и все при этом на питухоне лол), но будет медленно. а если простой CRUD и сплошной нетворкинг между всякими сервисами/бд/телегой то асинхронный питон будет летать, ведь весь ботлнек будет в ожидание ответа от других сервисов, а не в скорости работы питона
Процессинг видосов не будет медленным, так как инструменты для этого написаны на C и разницы между питоном и каким-нибудь растом в плане скорости обработки видео почти нету.
источник

𝖓

𝖓𝖎𝖊𝖒𝖆𝖓𝖉 in aiogram [ru]
Wolfram Juno
Процессинг видосов не будет медленным, так как инструменты для этого написаны на C и разницы между питоном и каким-нибудь растом в плане скорости обработки видео почти нету.
поетому я написал в скобочках
источник