Как реализовать многопроцессорность при создании бота на python?
Я работаю над ботом на питоне, для телеграмма. На определённом этапе мне нужно выполнить функцию которая выполняется от 1-2 минут. Если я просто её запущу то бот встанет и не сможет обрабатывать другие запросы. Как сделать так чтобы бот продолжал отвечать и работать, даже с запущенной функцией, и можно ли запустить несколько таких функций, или нужно реализоваывать очередь запуска? Ниже пример кода. Я попытался функцию использовать класс Process но он выдаёт ошибки
@dp.message_handler(commands=["download"])
async def command_create(message: types.Message):
request_text = data_base.get_user_state(user_id=message.from_user.id)
if request_text[0] and request_text[1] and request_text[2] and
request_text[3] == 0:
if int(request_text[2]) > 10:
return
await data_base.update_state_status(message.from_user.id, 1)
dw = Downloader(request_text[2], request_text[0], request_text[1])
await MakerFolder.add(Path(Path.cwd(), str(message.from_user.id), "image"))
p1 = multiprocessing.Process(target=dw.download_pictures,
args=(Path(Path.cwd(),
str(message.from_user.id), "image"),))
p1.start()
await MakerFolder.add(Path(Path.cwd(), str(message.from_user.id), "text"))
p2 = multiprocessing.Process(target=dw.download_text,
args=(Path(Path.cwd(),
str(message.from_user.id), "text"),))
p2.start()
else:
await message.answer(f"фон = {request_text[0]} \nтекст = {request_text[1]}\nколичество preview = {request_text[2]}\nПроцесс уже запущен введите команду /start, если хотите начать заново")