HuemulSolutions/huemul-bigdatagovernance

Control de ejecuciones - evitar re-ejecución (idempotency)

Opened this issue · 0 comments

Se requiere un método para controlar que los procesos se ejecuten solo N veces con los mismos parámetros, se esperan los siguientes comportamientos:

  • control de la cantidad de procesos: por default debe estar deshabilitado, para mantener compatibilidad con versiones anteriores, en caso de especificar un valor positivo, ese será el límite de veces que se puede ejecutar con los mismos parámetros
  • En caso que se cumpla el límite, el proceso no debe ejecutar, y debe retornar una de las siguientes dos opciones:
    • un código de error indicando que no se puede ejecutar debido a que ya existe una ejecución.
    • un OK del proceso,
    • en ambos casos se debe dejar un registro en la tabla control_processExec para indicar que no se ejecutó, y el resultado obtenido (según lo indicado anteriormente). Se debe agregar un campo en la tabla processExec indicando si fue una ejecución o solo un registro de intento de ejecución.
  • Aunque haya llegado al límite, debe existir una forma de que el proceso se vuelva a ejecutar, para ello debe existir una nueva tabla en el modelo de control, indicando el proceso que se debe permitir ejecutar, los parámetros que debe recibir, la identificación de la persona que lo autoriza, y una breve descripción del motivo por el cual se permite saltar la regla

Esta funcionalidad es útil para poder ejecutar mallas de procesos con muchos pasos, y en donde solo se quieran reprocesar ciertos procesos, "saltando" el resto de procesos que ya fueron ejecutados correctamente.