Layer-api-event-handler-service

De Plataforma COA Crowd
Saltar a: navegación, buscar

Servicio conectado directamente con REDIS encargado de la gestión de la base y la publicación de nuevas tareas.

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

Swagger

link de swagger de calidad [[1]]