Documentation for a newer release is available. View Latest

ODS Housekeeping Tasks

Las tareas de housekeeping son procesos en segundo plano recurrentes que ayudan a mantener y organizar los datos dentro de ODS.
Estas tareas utilizan el patrón Akka Cluster Singleton, asegurando que solo haya una instancia activa por clúster a la vez y evitando conflictos por ejecutar la misma tarea simultáneamente en múltiples nodos.
Estas tareas realizan funciones como enriquecimiento de datos, limpieza y mantenimiento. Cada tarea de housekeeping opera de forma independiente pero sigue el mismo marco de configuración y programación.

Las tareas de housekeeping disponibles son:

Configuración de tareas de Housekeeping

La configuración de una tarea de housekeeping sigue una estructura genérica. Sustituye <task-name> por el identificador de la tarea que se está configurando:

ods.housekeeping {
  <task-name> {
    # Configure to true if the task functionality is required
    enabled = false

    # How long to wait once ODS has started before making the first execution of the task
    initial-delay = 1M

    # How often to execute the task
    frequency = 10s

    # The Restart Strategy settings for the task's Cluster Singleton
    restart-settings {
      # Minimum (initial) duration until the task child actor will be started again, if it is terminated
      min-backoff = 1s

      # The exponential back-off is capped to this duration
      max-backoff = 1s

      # After calculation of the exponential back-off an additional random delay based on this factor is added, e.g. 0.2 adds up to 20% delay. In order to skip this additional delay pass in 0.
      jitter-factor = 0.2
    }
  }
}
A menos que se indique lo contrario en la documentación de configuración de cada tarea, los valores de configuración descritos arriba son los valores predeterminados para una tarea dada.

Manejo de errores

Debido a la naturaleza de la implementación de tareas recurrentes, los errores se reintentan de forma natural en la siguiente ejecución recurrente.

Cualquier error lanzado durante la ejecución de una tarea se registra como advertencia sin que se tome ninguna acción. La tarea volverá a ejecutarse en breve y la funcionalidad continuará en ejecuciones posteriores.

Resumen y monitorización de tareas de Housekeeping

Hay disponible en tiempo de ejecución un resumen de qué tareas de housekeeping se han habilitado/deshabilitado y sus configuraciones.

Logging

El resumen de housekeeping se registra en el arranque.

Ejemplo de log de resumen de tareas de housekeeping
2025-05-16T09:08:09.999Z  INFO 1 --- [           main] c.i.i.o.h.HousekeepingOverviewLogger       :
-------------------------------------------------------------------------------------
 Housekeeping Tasks
-------------------------------------------------------------------------------------
    ---------------------------------------------------------------------------------
     Enabled Tasks
    ---------------------------------------------------------------------------------
                               Task Name                     Task Scheduler Settings
    ---------------------------------------------------------------------------------
                  summary-csm-enrichment                             Frequency: PT1S
                                                                 Initial delay: PT0S
                                                                   Min backoff: PT1S
                                                                   Max backoff: PT1S
                                                                  Jitter factor: 0.2

             summary-identity-enrichment                            Frequency: PT10S
                                                                 Initial delay: PT1S
                                                                   Min backoff: PT2S
                                                                   Max backoff: PT1S
                                                                  Jitter factor: 0.5

    ---------------------------------------------------------------------------------
    ---------------------------------------------------------------------------------
     Disabled Tasks                                      housekeeping-example-task-2
                                                         housekeeping-example-task-3
    ---------------------------------------------------------------------------------
-------------------------------------------------------------------------------------

Endpoint de Actuator

El resumen de housekeeping está disponible como un endpoint personalizado de Spring Boot Actuator en /actuator/housekeeping-tasks. No está habilitado por defecto.

Configura management.endpoints.web.exposure.include para incluir housekeeping-tasks y habilitar el endpoint del resumen, o usa * para habilitar todos los endpoints de actuator.

  1. ej. management.endpoints.web.exposure.include = [health, info, prometheus, housekeeping-tasks].

Ejemplo de respuesta del resumen de housekeeping
{
  "enabledTasks": {
    "summary-identity-enrichment": {
      "enabled": true,
      "frequency": "PT1S",
      "initialDelay": "PT0S",
      "restartSettings": {
        "minBackoff": "PT1S",
        "maxBackoff": "PT1S",
        "jitterFactor": 0.2
      }
    },
    "summary-csm-enrichment": {
      "enabled": true,
      "frequency": "PT10S",
      "initialDelay": "PT1M",
      "restartSettings": {
        "minBackoff": "PT2S",
        "maxBackoff": "PT1S",
        "jitterFactor": 0.5
      }
    }
  },
  "disabledTasks": [
    "pds-object-id-enrichment",
    "housekeeping-example-task"
  ]
}

Tarea de Housekeeping: Summary Identity Enrichment

Una tarea de housekeeping que enriquece los campos de identificación del Payment Summary (debtorAccount, debtorAgentBIC, creditorName, etc.) usando la información presente en el Batch Summary relacionado del pago.
Esto permite que ODS Inquiry busque estos pagos usando la información de identificación del Batch, que previamente no estaba presente en el Payment.
Esta funcionalidad debe habilitarse explícitamente mediante configuración; las opciones de configuración pueden encontrarse abajo.

Este job solo actualizará Payments que estén relacionados con un Batch Y que tengan información de identificación distinta a la del Batch relacionado.

Los valores presentes en el Batch Summary se consideran la fuente de la verdad para estos campos de identificación. Cuando esta funcionalidad está habilitada, cualquier valor existente de campos de identidad en un Payment Summary será sobrescrito por los valores de su Batch Summary relacionado.

Esto solo aplica a Payment Summaries que tienen un Batch Summary relacionado, asociado a través del relatedUnitOfWorkId persistido del Payment.

Esta lógica de enriquecimiento está diseñada para consistencia eventual en las consultas del ODS Inquiry API. Como resultado, el resto del procesamiento de ODS Ingestion no depende de su finalización inmediata.

Los campos de información de identificación objetivo son:

  • debtorAccount

  • debtorName

  • debtorBIC

  • debtorAgentBIC

  • creditorAccount

  • creditorName

  • creditorBIC

  • creditorAgentBIC

El flujo general de alto nivel para esta tarea de housekeeping es:

Diagram

Requisitos previos

  • Debe existir un Batch Summary relacionado con un Payment Summary (vía relatedUnitOfWorkId).

  • Los Payments relacionados deben tener alguno de los campos de identificación listados distintos a los del Batch correspondiente.

Seguridad

Esta tarea solo actualiza los documentos de Summary en la base de datos. No modifica MDS/PDS/Process/Custom objects.

Auditoría

Las actualizaciones suceden en lote por Batch. Se recomiendan métricas y logs para visibilidad operativa.

Configuración predeterminada del Identity Enricher

Configuración

Consulta las opciones en la documentación original inglesa de esta tarea. Las referencias a includes se mantienen en el archivo en inglés.

Tarea de Housekeeping: Summary Csm Enrichment

Enriquece el campo csm del Payment Summary a partir de información disponible que pueda no haberse aplicado en tiempo de ingestión. Útil para consistencia eventual.

Configuración

Consulta las opciones en la documentación original inglesa de esta tarea. Las referencias a includes se mantienen en el archivo en inglés.

Tarea de Housekeeping: PDS Object ID Enrichment

Asigna y/o corrige identificadores de objetos PDS cuando falten o no sean consistentes, para facilitar correlación y búsquedas posteriores.

Configuración

Consulta las opciones en la documentación original inglesa de esta tarea. Las referencias a includes se mantienen en el archivo en inglés.