Задать вопрос

Как справиться с ошибкой raise asyncio.TimeoutError from None?

Пишу телеграм бота который должен скачать видео, которое ему отправил пользователь, склеить и вернуть новое. Так как у телеграмма очень урезаны лимиты для ботов, видео отправляю через клиентскую сторону в бота, записываю айди и отправляю уже конечному пользователю готовое видео. Проблема возникает, когда видео больше, чем существуют ограничения, примерно через 3-4 минуты склеивания бот выкидывает ошибку.
Task exception was never retrieved
future: <Task finished name='Task-28' coro=<Dispatcher._process_polling_updates() done, defined at C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py:407> exception=TimeoutError()>
Traceback (most recent call last):
  File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
    for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
  File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates    
    return await asyncio.gather(*tasks)
  File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 256, in process_update     
    return await self.message_handlers.notify(update.message)
  File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "C:\Users\vizzy\Desktop\program\testapi\bot\handlers\client.py", line 76, in input_links
    asyncio.create_task(await get_videos(name, links))
  File "C:\Users\vizzy\Desktop\program\testapi\bot\functions\func.py", line 7, in get_videos
    await session.post(f"http://127.0.0.1:8080/video?names={names}", json={"link": videos})
  File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiohttp\client.py", line 559, in _request
  File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiohttp\client_reqrep.py", line 913, in start
    self._continue = None
  File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiohttp\helpers.py", line 721, in __exit__
    raise asyncio.TimeoutError from None

Если видео меньше, все окей. Пробовал меня значение timeout в executor.start_polling от 0 до 20000, но ничего не изменилось
Код бота:
@dp.message_handler(state=StorageLink.links)
async def input_links(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['links'] = message.text.split('\n')
        links = data["links"]
    if len(links) < 2:
        await bot.send_message(message.chat.id, "Склеить можно не менее двух видео.", reply_markup=start_kb())
        await state.finish()
    else:
        await bot.send_message(message.chat.id, "Склейка началась, как будет готово - я скину видео.", reply_markup=start_kb())
        name = randint(1, 5000)
        path = f'{os.path.dirname(os.path.abspath(__name__))}/app_video/{name}.mp4'.replace("\\", "/")
        await state.finish()
        await sql_add_video(name, path, message.chat.id)
        await get_videos(name, links) # функция скачивания + склеивания видео, которая с небольшими размерами видео работает адекватно
        await main() # функция отправки с клиентской стороны боту
  • Вопрос задан
  • 1872 просмотра
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
@kkid404 Автор вопроса
В итоге увеличил ожидание дефолтного таймера с 5 до 800 минут
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы