Size: a a a

2020 August 17

in aiogram [ru]
Читай комменты к коду
источник

G

Gabben in aiogram [ru]
Bunk Bunkovich 🐈
оно в трай эксепте
источник

in aiogram [ru]
Gabben
а если вдруг query.answer("Something", show_alert=True) понадобится
Да, это тоже надо учитывать
источник

DK

Daniil Kovalenko in aiogram [ru]
Как и возможную надобность и ненадобность кэширования
источник

АА

Алексей Алексеев... in aiogram [ru]
Спасибо большое
источник

ПС

Павел Стельмах... in aiogram [ru]
Здравствуйте. Какие в такой реализации есть минусы?
loop = asyncio.get_event_loop()
           
async def task():
   await asyncio.sleep(100)
   await bot.send_message(...)
   loop.create_task(task())


if __name__ == '__main__':
   loop.create_task(task())
источник

G

Gabben in aiogram [ru]
Павел Стельмах
Здравствуйте. Какие в такой реализации есть минусы?
loop = asyncio.get_event_loop()
           
async def task():
   await asyncio.sleep(100)
   await bot.send_message(...)
   loop.create_task(task())


if __name__ == '__main__':
   loop.create_task(task())
Используется луп, можно все через asyncio
Сообщение отправится один раз, ну если это так и задумано
источник

ПС

Павел Стельмах... in aiogram [ru]
работать - работает, но как "правильнее" сделать
источник

ПС

Павел Стельмах... in aiogram [ru]
loop = asyncio.get_event_loop()

bot = Bot(token=TOKEN, parse_mode=types.ParseMode.HTML)
dp = Dispatcher(bot=bot, storage=storage, loop=loop)


async def task():
   await asyncio.sleep(100)
   await bot.send_message(...)
   loop.create_task(task())


if __name__ == '__main__':
   loop.create_task(task())
   executor.start_polling(dp)
источник

ПС

Павел Стельмах... in aiogram [ru]
вот так + куча хэндлеров. Интересует какие минусы в такой реализации автопостинга (повторюсь - оно работает)
источник

F🍭

Fenicu 🍭 in aiogram [ru]
лучше через create_task
источник

OA

Oleg A. 🇷🇺 in aiogram [ru]
Павел Стельмах
loop = asyncio.get_event_loop()

bot = Bot(token=TOKEN, parse_mode=types.ParseMode.HTML)
dp = Dispatcher(bot=bot, storage=storage, loop=loop)


async def task():
   await asyncio.sleep(100)
   await bot.send_message(...)
   loop.create_task(task())


if __name__ == '__main__':
   loop.create_task(task())
   executor.start_polling(dp)
Зачем поллинг здесь?
И вообще диспетчер зачем?
источник

ПС

Павел Стельмах... in aiogram [ru]
Oleg A. 🇷🇺
Зачем поллинг здесь?
И вообще диспетчер зачем?
Там хэндлеры.
источник

OA

Oleg A. 🇷🇺 in aiogram [ru]
Из примера это не понятно)
источник

ПС

Павел Стельмах... in aiogram [ru]
Fenicu 🍭
лучше через create_task
Так и так через create_task же
источник

F🍭

Fenicu 🍭 in aiogram [ru]
а, я просто прочитал первое твоё сообщение
источник

OA

Oleg A. 🇷🇺 in aiogram [ru]
Павел Стельмах
loop = asyncio.get_event_loop()

bot = Bot(token=TOKEN, parse_mode=types.ParseMode.HTML)
dp = Dispatcher(bot=bot, storage=storage, loop=loop)


async def task():
   await asyncio.sleep(100)
   await bot.send_message(...)
   loop.create_task(task())


if __name__ == '__main__':
   loop.create_task(task())
   executor.start_polling(dp)
Здесь, если что пойдет не так, стек трейсбека будет огромным уже через пару дней)
Не надо столько тасков делать вложенных
источник

OA

Oleg A. 🇷🇺 in aiogram [ru]
Достаточно один и цикл
И обработку ошибок
источник

ПС

Павел Стельмах... in aiogram [ru]
Рекурсивно таски создавать насколько критично? Я вроде понимаю, что она создастся после того как отработают слип и сенд, но хотелось бы уточнить.
источник

OA

Oleg A. 🇷🇺 in aiogram [ru]
Я и говорю о том, что это странная затея
источник