diff --git a/src/core/master_service.py b/src/core/master_service.py index aabd460..185bbec 100644 --- a/src/core/master_service.py +++ b/src/core/master_service.py @@ -3,6 +3,7 @@ import concurrent.futures as pool import subprocess from functools import partial +import traceback from urllib.parse import urlparse from src.core.async_queue import AsyncQueue @@ -111,6 +112,12 @@ class MasterService: "result": ex.default_message, "status": "error" }) + except Exception as ex: + Result(result_type=ResultTypeEnum.EXCEPTION, value={ + "link": video_params["link"], + "result": traceback.format_exc(), + "status": "error" + }) # TODO upload to server diff --git a/src/web/main.py b/src/web/main.py index 176572b..efb5288 100644 --- a/src/web/main.py +++ b/src/web/main.py @@ -59,7 +59,6 @@ queue_name -> { } ''' - async def is_task_already_done_or_exist(redis: RedisClient, link: str): messages = await redis.get_task_done_queue() temp = [json.loads(msg) for msg in messages] @@ -96,6 +95,7 @@ async def index(request: Request): async def get_url_for_download_video(request: Request, data: SubmitIn = Depends()): red = RedisClient() task_done = await is_task_already_done_or_exist(red, data.link) + # TODO: где-то не обновился статус после выполнения\провала задачи task_in_process = await is_task_in_process(red, data.link) if task_in_process: return JSONResponse({"result": "Задача в работе. Ожидайте"})