Layer-api-event-handler-service
Servicio conectado directamente con REDIS encargado de la gestión de la base y la publicación de nuevas tareas.
Sumario
Dependencias
Servicio de core para la actualizacion de los estados de las tareas y sus segmentos.
Servicio de web para la actualizacion de los estados finales de las tareas, sus historicos y la información de los workers.
Máquina de estados
Sin dependencia de Maquina de Estados
Bases de datos
REDIS
Funcionalidad
El servicio event-handler funciona como un publicador de objetos a redis y como un servicio de monitorea a los elementos que existen en el, por ejemplo puede retornar que información se encuentra en redis de una tarea, o cuales son las tareas encoladas en una lista de prioridad en especifico.
Publicacion de tareas
Existen, actualmente 2 esquemas de publicación, uno para tareas tipo push, donde el esquema contiene una seria de listas de prioridad, donde un worker va a iterar hasta encontrar una tarea con los requisitos necesarios y se va a asignar automaticamente, y otro para tareas push, donde son colas nombradas de acuerdo a la empresa y/o sucursal que este publicando.
Publicacion esquema push
La publicacion tipo push publica 2 objetos a la base de datos de REDIS, uno es un TaskHash el cual es el hash con información propia de una tarea, y el otro objeto seria uno del tipo ListTaskItem que es el elemento dentro de las colas de prioridad.
Publicacion esquema pull
La publicacion tipo pull también publica 2 objetos a la base de datos de REDIS, uno es un TaskHash el cual es el hash con información propia de una tarea, y el otro objeto seria uno del tipo ListTaskItemForBranch que es el elemento dentro de las colas del tipo empresa-sucursal.
Monitorización de REDIS
El event-handler cuenta con endpoints que retornan información publicada en redis:
- /state/keys
Retorna el nombre de todas las colas y hashes que se encuentran publicados en redis
- /state/taskInfo
Retorna el TaskHash de una tarea de redis por su id, del tipo push.
- /state/getTaskForBranchInfo
Retorna el TaskHash de una tarea de redis por su id, del tipo pull.
- /state/workerInfo
Retorna la informacion que contiene el WorkerHash de un worker.
- /state/getPriorityQueue
Retorna la lista de ListTaskItem de una cola de prioridad especifica.
- /state/getBusyWorkers
Retorna la cola BusyWorkers en redis, que contiene los workers con asignaciones en progreso.
Elementos que lo consumen
- DAG: scheduler-maintenance
- Motor de tareas
- layer-api-task-publisher-service
Swagger
link de swagger de calidad [[1]]