- хочу чтобы бот при перезапуске (ну то есть тупо в начале мейна где-то) рассылал сообщение во все чаты с базы данных, что мол бот поднялся, ура (не спам если что, а те чаты которые зарегистрировались сами))
Хоть убей не пойму как это нормально сделать, очевидно что просто bot.send_message не прокатывает потому что was never awaited, попробовал сделать так
async def update_alert(s):
for i in s:
await bot.send_message(i,text)
asyncio.run(update_alert(members))
но так походу не нравится боту
2022-05-24T08:36:44.309875+00:00 app[web.1]: Unclosed client session
2022-05-24T08:36:44.309877+00:00 app[web.1]: client_session: <aiohttp.client.ClientSession object at 0x7fdb86d51180>
2022-05-24T08:36:44.309951+00:00 app[web.1]: Unclosed connector
2022-05-24T08:36:44.309952+00:00 app[web.1]: connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x7fdb867bd3c0>, 987531.079075319)]']
2022-05-24T08:36:44.309952+00:00 app[web.1]: connector: <aiohttp.connector.TCPConnector object at 0x7fdb86d53fa0>
потом попробовал даже в on_startup asyncio.run перенести, не знаю зачем, ну успехи такие же
в общем есть ли какой-то вариант адекватно и просто это реализовать?)
а ран разве не открывает выполняет и закрывает ? или как еще надо?
Не нравится. Но отправляет же?
нет, крашится
#async def on_startup(dispatcher): # cursor.execute('SELECT user_id FROM test') # arr = cursor.fetchall() # for user_id in arr: # try: # await bot.send_message(chat_id=user_id[0], text="бла бла бла") # except BotBlocked: # await asyncio.sleep(0.5) # except ChatNotFound: # await asyncio.sleep(0.5) # except CantInitiateConversation: # await asyncio.sleep(0.5) # except UserDeactivated: # await asyncio.sleep(0.5) У меня так, может подойдет
Пройдись поиском по чату. Подымали проблему
Не проще finally: sleep(0,5)?
благодарю, попробую
Та я не пользуюсь этим, ради любопытства писал
Обсуждают сегодня