Новый поток блокирует выполнение основного процесса
У меня есть телеграмм бот, написанный на aiogram. Сам бот запускается в отдельном процессе:
def start_bot():
executor.start_polling(dp, skip_updates=True)
if __name__ == '__main__':
Process(target=start_bot).start()
В коде есть функция, которая принимает нажатие определенной кнопки и создает новый поток, в котором другая функция делает запрос в БД и после отправляет сообщение пользователю:
@dp.callback_query_handler()
async def callback_respond(callback_query):
connection = db.DbConnection()
message = connection.get_data(paper_name='politico')
await bot.send_message(chat_id=callback_query.from_user.id, text=message)
@dp.callback_query_handler()
async def callback_query_keyboard(callback_query: types.CallbackQuery):
Thread(target=callback_respond, args=[callback_query]).start()
Проблема в том, что пока поток выполняется, то сам бот перестает работать. Как это исправить?