Как передать асинхронную функцию в multiprocces.Process Python

Пишу ТГ бота на aiogram, python. Столкнулся с проблемой, мне нужно запустить отдельный процесс с помощью multiprocessing Procces(). Но как передать в аргумент target асинхронную функцию? Это часть функции телеграмм бота

 elif #Нужное условие#:
    p = mp.Process(target=sc.main #файл импортирован как sc# , args=(user_data['query'], user_data['max_subs'], user_data['req_amount'],
                                         user_id, message, kb_client))
    p.start()
await state.finish()

Это сама функция

async def main(query, max_subs, req_amount, user_id, message, kb_client):
#Куча не нужных переменных#
file_d = f"handlers/Scraper/data/{user_id}_data.csv"

get_data(#куча не нужных аргументов#)


file = open(file_d, "rb")
await message.answer(file, reply_markup=kb_client)
os.remove(file_d)

multiprocessing.current_process().close()

Если что без message.answer() все отлично работает. Возможно есть вариант запуска message.answer() без await чтобы не делать функцию асинхронной. Пожалуйста, любое решение, очень нужно!


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

Автор решения: Gibue

Нашел решение, но оно не совсем красивое. Сделал отдельную функцию которая будет отправлять результат при нажатии на кнопку. Так же она будет проверять выполняется ли еще запрос с помощью

for proc in proc_l:
    if proc.name == message.from_user.id:
    await message.answer("Ваш запрос еще выполняется")
→ Ссылка