Scripts de sincronización
Sincronizar balances desde lista de cuentas
En caso que se desee forzar la sincronización de la base de datos de balance-mirror para una lista de cuentas, se siguen los siguientes pasos:
Crear un archivo de texto con la lista de cuentas, una código de cuenta por cada fila
Instalar Node.js, si no se encuentra instalado.
instalar módulo de MongoDB mediante el siguiente comando:
npm install mongodbDescargar el script node sync_from_file.js que aparece a continuación:
Teniendo la URI de la base de datos de Mongo, y el archivo con las cuentas, ejecutar el script sync_from_file.js
node sync_from_file.js "mongodb://user:password@127.0.0.1:27017/ffss-spin-balance-mirror-db?authSource=admin" accounts.txt
Este script dejará en true la bandera forceSync de las colección balances, de manera que en el próximo ingreso del usuario se consultará al proveedor de servicios financieros en lugar del mirror de balance.
Sincronizar servicios en caso de interrupción de servicio
En caso que haya una interrupción en los servicios de Mirror debido a, por ejemplo, desconexión de clúster de Genesys o desconexión de base de datos de Mirror, se podrían deshabilitar los Feature flags de los servicios de agregación para desviar el consumo hacia Fiserv y así garantizar la continuidad del servicio a los usuarios. Una vez solucionada la causa de fallo, la información de las bases de datos de las cuentas que fueron afectadas durante la intermitencia estaría obsoleta.
Para que los servicios de mirror vuelvan a estar sincronizados, la solución más rápida es eliminar todas las colecciones de la bases de datos, de manera que se vuelvan a poblar de acuerdo a la demanda de consumos de los usuarios, sin embargo se eliminarán más registros de los necesarios ya que no todos pudieron ser alterados durante la intermitencia del servicio y ello podría ocasionar costos adicionales. Para reducir el número de registros a sincronizar se proponen las siguientes estrategias:
Account mirror
Identificar si es posible cuáles cuentas fueron bloqueadas o desbloqueadas durante la interrupción del servicio y eliminar los registros en la colección de accounts de los servicios de mirror.
Card Mirror
Identificar si es posible cuáles tarjetas fueron bloqueadas, desbloqueadas, activadas o desactivadas durante la interrupción del servicio y eliminar los registros en la colección de cards de los servicios de mirror.
Balance mirror
Mediante la colección FiservTransanctions de Spin es posible identificar las cuentas que fueron afectadas durante una eventual interrupción de servicio. Para actualizar solamente los datos de la colección de balance mirror, se proponen los siguientes pasos:
Identificar la hora inicial y la hora final de la interrupción del servicio.
Instalar Node.js, si no se encuentra instalado.
instalar módulo de MongoDB mediante el siguiente comando:
npm install mongodbDescargar el script node sync_from_transactions.js que aparece a continuación:
Con la URI de la base de datos de pagopop, la URI de la base de datos de FFSS, y el tiempo de inicio y fin de intermitencia, ejecutar el siguiente comando
node sync_from_transactions.js <uri_mongo_pagopop> <uri_mongo_ffss> <start_datetime> <end_datetime>Este Script consultará las cuentas de las transacciones ocurridas durante lapso de tiempo especificado y afectará los documentos correspondientes en la colección de balance mirror dejando la bandera forceSync en true para que se sincronice la próxima vez que el usuario ingrese.