Caches

Datos de Pago Cache

Este servicio instancia un Async Cache Adapter.

It caches todos los objetos relacionados con pagos, como PAIN_001.

Se requiere que se proporcione la siguiente configuración:

data-cache.retry-delay = 2s

Custom Datos Cache

Este servicio instancia un Async Cache Adapter.

It caches todo custom objetos relacionados por configurable claves-de-datos-personalizadas 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 la recuperación por ods es compatible:

data-cache.retry-delay = 2s

Pds Datos Cache

Este servicio instancia un Async Cache Adapter.

It caches todo pds objetos relacionados por configurable 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 la recuperación por ods es compatible:

data-cache.retry-delay = 2s

Configuración de Notificaciones Cache

Este cache instancia un Async Cache Adapter.

It caches 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 cache.

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

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 cache, por favor, lea 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 Notificaciones utilizamos infinispan como nuestro caching opción.

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-configuraciones:

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 cache, por favor, lea 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-configuraciones:

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
       }
    }
}