Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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:

...

  1. Teniendo la URI de la base de datos de Mongo, y el archivo con las cuentas, ejecutar el script sync_from_file.js

  2. Code Block
    languagebash
    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:

  1. Identificar la hora inicial y la hora final de la interrupción del servicio.

  2. Instalar Node.js, si no se encuentra instalado.

  3. instalar módulo de MongoDB mediante el siguiente comando:

Code Block
npm install mongodb
  1. Descargar el script node sync_from_transactions.js que aparece a continuación:

View file
namesync_from_transactions.js

  1. 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

Code Block
languagebash
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.