Caches

Datos de Pago Cache

Este servicio instancia un Async Cache Adapter.

Cacha todos los objetos relacionados con pagos, como PAIN_001.

Se requiere que se proporcione la siguiente configuración:

data-cache.retry-delay = 2s

Datos Personalizados Cache

Este servicio instancia un Async Cache Adapter.

Cacha todo custom objetos relacionados por configurable custom-data-keys campo, que toma una lista de nombres para extraer de un CustomObjectContainer.

payment-status-notification.resequencer.custom-data-keys = []

También requiere que se proporcione el retraso de reintento si se admite la recuperación por ods:

data-cache.retry-delay = 2s

Datos Pds Cache

Este servicio instancia un Async Cache Adapter.

Caché todos los objetos relacionados con pds mediante configuración.pds-data-keys campo, que toma una lista de nombres para extraer de un PdsObjectContainer.

payment-status-notification.resequencer.pds-data-keys = []

También requiere que se proporcione el retraso de reintento si se admite la recuperación por ods:

data-cache.retry-delay = 2s

Configuración de Notificaciones Cache

Este caché instancia un Async Cache Adapter.

Cacha todas las configuraciones de notificación. Luego, es utilizado por la implementación del Conector y por el MongoDB implementación, que utiliza el adaptador para almacenar y recuperar los datos de la caché.

Esto evitará llamadas innecesarias a servicios externos cuando los datos estén disponibles en la caché.

Asíncrono Cache Adaptador

Dos tipos de Async Cache Los adaptadores pueden ser instanciados. Vale la pena revisar el IPF-Cache documentación para entender las diferentes opciones con más detalle. La configuración actual que puede ser anulada se cubre aquí.

ipf.caching.caffeine.enabled = false

ipf.caching.infinispan {
  enabled = true
  cache-manager-name = "infinispanCacheManager"
    settings {
      payment-data {
        max-count = 19000000
        timeout = 4h
        cache-mode = REPL_ASYNC
      }
      custom-data {
        max-count = 19000000
        timeout = 4h
        cache-mode = REPL_ASYNC
      }
      pds-data {
        max-count = 19000000
        timeout = 4h
        cache-mode = REPL_ASYNC
      }
      resequencer-state {
        max-count = 19000000
        timeout = 5m
        cache-mode = REPL_ASYNC
      }
      notification-settings {
        max-count = 100
        timeout = 1h
        cache-mode = REPL_ASYNC
      }
   }
}

Caffeine Cache

Para habilitar Caffeine Cache esta propiedad debe ser establecida:

ipf.caching.caffeine.enabled = true

Para la configuración adicional que debe ser proporcionada para Caffeine caché, por favor consulte la documentación sobre Configuración de Cafeína.

Tres Async Cache Los adaptadores se instancian utilizando el Caffeine Cache Fábrica si la configuración está establecida para usar Caffeine:

En el Servicio de Notificación utilizamos infinispan como nuestra opción de almacenamiento en caché.

En caso de que deseemos cambiar a caffeine, solo necesitamos cambiar la propiedad habilitada de false a true y establecer las siguientes propiedades para payment-data y notifications-settings:

ipf.caching.caffeine {
    enabled = false
    settings {
       payment-data {
          max-size = 100000
          timeout = 80s
       }
       notification-settings {
          max-size = 1
          timeout = 1ms
       }
    }
}

Infinispan Cache

Para habilitar Infinispan Cache esta propiedad debe ser establecida:

ipf.caching.infinispan.enabled = true

Para la configuración adicional que debe ser proporcionada para Infinispan caché, por favor consulte la documentación sobre Configuración de Infinispan.

Dos Async Cache Los adaptadores se instancian utilizando el Infinispan Cache Fábrica si la configuración está establecida para usar Infinispan:

Y aquí hay un ejemplo de cómo podemos establecer las propiedades para payment-data y notifications-settings:

ipf.caching.infinispan {
    enabled = true
    cache-manager-name = "infinispanCacheManager"
    settings {
       payment-data {
          max-count = 100000
          timeout = 80s
          cache-mode = REPL_ASYNC
       }
       # We don't want to cache the notification settings because each test has different notification settings
       notification-settings {
          max-count = 1
          timeout = 1ms
          cache-mode = REPL_ASYNC
       }
    }
}