Код не выполняется асинхронно
Моя проблема в том, что когда один пользователь отправляет фото и ждет ответ, и при этом второй пользователь через пару секунд тоже отправляет фото, то первый не получит ответ, пока не обработается фото второго пользователя.
@router.message(F.photo)
async def photo_processing(message: Message):
task = asyncio.create_task(process_photo(message))
await task
@measure_time
async def process_photo(message: Message):
loop = asyncio.get_event_loop()
process_message = await message.answer("? Ищу номер на фото. . .", reply_markup=remove_keyboard)
photo_path = await download_photo(message)
# Находим номер на изображении
crop_number = await loop.run_in_executor(None, detect, photo_path, message.from_user.username)
if crop_number is not False:
result_keras, result_easyocr = await read_number(crop_number)
if result_keras is not False:
markup = await create_inline_buttons(method="keras")
await process_message.delete()
await message.reply(f"Найден номер: <b>{result_keras}</b> ?\n\nВсе верно?", reply_markup=markup)
else:
# Если keras не определил, то выводим easyocr
if result_easyocr is not False:
markup = await create_inline_buttons(method="easyocr")
await process_message.delete()
await message.reply(f"Найден номер: <b>{result_easyocr}</b> ?\n\nВсе верно?", reply_markup=markup)
else:
await process_message.delete()
await message.answer("⛔️ Не удалось определить номер.\n\n➡️ Попробуйте написать номер вручную.")
if result_keras is not False or result_easyocr is not False:
# Сохраняем результат
saved_number[message.chat.id] = {
"result_keras": result_keras,
"result_easyocr": result_easyocr
}
else:
await process_message.delete()
await message.answer("⛔️ Не удалось найти номер на фото.\n\n➡️ Попробуйте написать номер вручную.")