Commit 5c4528b1 authored by Erly Villaroel's avatar Erly Villaroel

Timeout

parent acead9c2
......@@ -11,3 +11,4 @@ class CodeResponseEnum(Enum):
OUTPUT_ERROR = 606
EMPTY_DATASET = 607
ERROR = 609
TIMEOUT_ERROR = 800
......@@ -2,7 +2,7 @@ from typing import Dict, Any
import time
import traceback as traceback_lib
import importlib
from threading import Timer
from config import Config as cfg
from app.main.engine.util.Timezone import Timezone
from app.main.engine.util.Utils import Utils
......@@ -11,6 +11,11 @@ from app.main.engine.enum.CodeResponseEnum import CodeResponseEnum
from app.main.engine.database.Database import Database
def timeout_function():
raise TimeoutError("Timeout occurred")
class Process:
def __init__(self, app, descriptor: Dict[str, Any]) -> None:
self.app = app
......@@ -21,7 +26,11 @@ class Process:
def run(self) -> Dict[str, Any]:
status, status_description = StatusEnum.OK, ""
input_time = self.descriptor["config-params"]["max-timeout-per-combinations"]
t = Timer(input_time, timeout_function)
t.start()
try:
# Obteniendo la conexión a la BD
db_params = cfg.db_params
source = Database(self.app, db_params)
......@@ -75,9 +84,13 @@ class Process:
except ReferenceError as e:
self.app.logger.error(f"Error validando parámetros del descriptor. {e}")
status, status_description = CodeResponseEnum.PARAMETERS_ERROR, str(e)
except TimeoutError as e:
self.app.logger.error(f"Error validando parámetros del descriptor. {e}")
status, status_description = CodeResponseEnum.TIMEOUT_ERROR, str(e)
except Exception as e:
traceback_lib.print_exc()
self.app.logger.error(f"Error procesando engine. {e}")
status, status_description = StatusEnum.ERROR, str(e)
finally:
t.cancel()
return self.utils.create_response(status, status_description)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment