SIU-Pilaga/version3.1.5/rest hooks

De SIU
Revisión del 19:36 21 feb 2018 de Falvez (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Implementación de Rest hooks

Esta implementación permite el envío asincrónico de mensajes REST.

  • Provee reintentos automáticos basados en una estrategia configurable
  • Provee trazabilidad de todos los envíos que se hacen
  • Basado en Redis

Funcionamiento

  1. SIU-Pilaga envía un mensaje utilizando el método send
  2. La librería encola el mensaje en Redis
  3. La librería en otro proceso desencola el mensaje y comienza a enviarlo a los listeners correspondientes registrando todo lo que sucede en el backend de auditoría
    1. Si hay éxito se invoca la callback onSuccess
    2. Si falla y no se reintenta se invoca la callback onFailure
    3. Si falla y reintenta se encola el mensaje en otra cola de redis para su posterior reenvío

Requerimientos

Instalar Redis

Es necesario tener instalado Redis. Una manera rápida de hacerlo es utilizando Docker.

Si se está instalando en producción es recomendado conocer bien esta herramienta y montar una estrategia de backups.

 docker run --name some-redis -p6379:6379 -d redis

Configuración del Cliente Rest

Para poder conectarse con el otro sistema en primer lugar se debe configurar el cliente REST, en el caso de requerir realizar una conexión con el sistema SIU-Diaguita ir al siguiente link Conectar SIU-Pilagá con SIU-Diaguita

Configuración de variables de entorno de la instalación

Es requerido configurar datos del servidor Redis en el archivo de parámetros instalador.env

##### CONFIG REST-HOOKS #####
REST_HOOKS_REDIS_HOST="127.0.0.1"
REST_HOOKS_REDIS_PORT="6379"

Crear el schema del backend de rest hooks

El backend define la forma de acceder al esquema de auditoría de la librería. El que se entrega con la librería implementa un backend de Postgres.

Para crear el schema de rest hooks es posible hacerlo ejecutando el siguiente comando toba:

toba proyecto crear_base_resthooks -i produccion -p pilaga

Iniciar Workers

Existe un proceso que periódicamente chequea las colas de mensajes de Redis y si encuentra un paquete nuevo ejecuta el worker correspondiente.

Para iniciar la ejecución de los workser se ejecuta el siguiente comando:

toba proyecto iniciar_workers -i produccion -p pilaga

Si se quiere asegurar que los workers están siempre en ejecución se puede hacer a través de un sistema de control de procesos como supervisord (http://supervisord.org/) este se encarga de que el proceso siempre este activo y si se reinicia el servidor el proceso también se inicie.

Activar/Desactivar el uso de rest hooks

Para activar o desactivar el uso de rest hooks se debe configurar el parámetro “resthooks_activo = 0|1” en el archivo resthooks.ini que se encuentra en el directorio de instalación del proyecto.