Не запускается асинхронная функция в потоке
Концепция бота в том, чтобы он пересылал сообщения во все чаты, которые есть в бд и если конкретнее, то не получается выполнить await асинхронной функций в асинхронной функции, вылетает ошибка:
Task <Task pending name='Task-3' coro=<process_send_message() running at C:\Users\hdhrh\PycharmProjects\group_sendeer\main.py:92> cb=[_run_until_complete_cb() at C:\Users\****\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py:184]> got Future <Future pending cb=[shield.<locals>._outer_done_callback() at C:\Users\****\AppData\Local\Programs\Python\Python310\lib\asyncio\tasks.py:857]> attached to a different loop
Код самой функции:
async def send_message_process():
while True:
try:
with open("message.json", 'r', encoding="utf-8") as f:
data = json.load(f)["data"]
all_users = db.get_all_users()
for i in all_users:
print(i)
await bot.copy_message(from_chat_id=data[1], chat_id=i,
message_id=data[0]) # в этой строчке происходит ошибка
except Exception as e:
print(e)
time.sleep(60)
Потоки и их запуск:
def check_bd():
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(send_message_process())
loop.close()
def start_bot():
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(executor.start_polling(dp, skip_updates=True))
loop.close()
if __name__ == '__main__':
f = Thread(target=check_bd)
start_bot = Thread(target=start_bot)
f.start()
start_bot.start()
f.join()
start_bot.join()