Как сделать так чтобы бот выносил функцию обработки в отдельный поток и не стопил при этом всего бота Aiogram

def work_with_img(image, var):
    image = np.array(image/255, dtype=float)
    noise = np.random.normal(0, var ** 0.5, image.shape)
    out = image + noise
    out = np.clip(out, 0, 1.0)
    out = np.uint8(out*255)
    return out

def per(img):
    img1=cv2.imread(img)#путь до изображения
    e=gen(random.randint(12,20))
    u=work_with_img(img1,0.0003)
    cv2.imwrite(f'{e}.jpg',u)
    return f"{e}.jpg"#обработка изображений

@dp.callback_query_handler(state='ph')
async def  ph_work(call: types.CallbackQuery,state: FSMContext):
            async with state.proxy() as data:
                    src: src = data.get("info")
            await bot.delete_message(chat_id=call.from_user.id, message_id=call.message.message_id)
            await call.message.answer(f'{tim}Обработка начата{tim}')
            media = types.MediaGroup()
            for i in range(5):
                media.attach_document(types.InputFile(per(src)))
            await call.message.answer_media_group(media=media)
            await state.finish()
            os.remove(src)

Ответы (0 шт):