SIU-Pilaga/version3.11.0/rest hooks
Sumario
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
- SIU-Pilaga envía un mensaje utilizando el método send
- La librería encola el mensaje en Redis
- 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
- Si hay éxito se invoca la callback onSuccess
- Si falla y no se reintenta se invoca la callback onFailure
- 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.