ODS Tareas de Mantenimiento
Las tareas de mantenimiento son procesos de fondo recurrentes que ayudan a mantener y organizar los datos dentro de ODS.
Estas tareas son impulsadas por un Akka Cluster Singleton patrón, asegurando que solo haya una instancia activa por clúster a la vez, evitando conflictos de ejecutar la misma tarea simultáneamente en múltiples nodos.
Estas tareas realizan funciones como enriquecimiento de datos, limpieza y mantenimiento. Cada tarea de mantenimiento opera de manera independiente, pero sigue la misma configuración y scheduling framework.
Las tareas de limpieza disponibles son:
-
Enriquecimiento de ID de objeto PDS == Configuración de Tareas de Mantenimiento
La configuración para una tarea de limpieza sigue una estructura genérica. Reemplace <task-name> con 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 anteriormente son los valores predeterminados para una tarea dada. |
Manejo de Errores
Debido a la naturaleza de la implementación de la tarea recurrente, los errores se reintentan de manera natural en la siguiente ejecución recurrente.
Cualquier error generado durante la ejecución de una tarea se registra como una advertencia sin que se tome ninguna acción. La tarea se ejecutará nuevamente en breve y la funcionalidad continuará en ejecuciones posteriores.
Resumen y Monitoreo de Tareas de Mantenimiento
Una visión general de qué tareas de mantenimiento han sido habilitadas/deshabilitadas y sus configuraciones está disponible en tiempo de ejecución.
Registro
La visión general de la limpieza se registra al inicio.
Ejemplo de registro de tareas de limpieza
2025-05-16T09:08:09. 999Z INFO 1 --- [ main] c.i.i.o.h. HousekeepingOverviewLogger:
-------------------------------------------------------------------------------------
Tareas de limpieza
-------------------------------------------------------------------------------------
---------------------------------------------------------------------------------
Tareas habilitadas
---------------------------------------------------------------------------------
Nombre de la tarea Configuración del Programador de Tareas
---------------------------------------------------------------------------------
resumen-enriquecimiento-csm Frecuencia: PT1S
Retraso inicial: PT0S
Min backoff: PT1S
Max backoff: PT1S
Factor de jitter: 0. 2
resumen-enriquecimiento-de-identidad Frecuencia: PT10S
Retraso inicial: PT1S
Min backoff: PT2S
Max backoff: PT1S
Factor de jitter: 0. 5
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
Tareas deshabilitadas housekeeping-example-task-2
housekeeping-example-task-3
---------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
Punto final del actuador
La visión general de limpieza está disponible como un custom Spring Boot Punto final del actuador en /actuator/housekeeping-tasks. No está habilitado por defecto.
Configurar management.endpoints.web.exposure.include incluir housekeeping-tasks, para habilitar el punto final de diseño de resumen, o con * para habilitar todos los puntos finales del actuador.
e.g.management.endpoints.web.exposure.include = [health, info, prometheus, housekeeping-tasks].
Ejemplo de respuesta sobre la visión general de la limpieza.
{
"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"
]
}
Resumen de la Tarea de Mantenimiento de Enriquecimiento de Identidad
Una tarea de mantenimiento que enriquece los campos de identificación del Resumen de Pagos (debtorAccount, debtorAgentBIC, creditorName, etc..) utilizando la información presente en el Resumen de Lote relacionado con el Pago.
Esto permite ODS Inquiry para buscar estos Pagos utilizando la información de identificación del Lote, que anteriormente no estaba presente en el Pago.
Esta funcionalidad debe ser habilitada explícitamente a través de la configuración, las opciones de configuración se pueden encontrar debajo.
Este trabajo solo actualizará los Pagos que estén relacionados con un Lote Y que tengan información de identificación diferente a la del Lote relacionado.
Los valores presentes en el Resumen de Lotes se consideran la fuente de verdad para estos campos de identificación. Cuando esta funcionalidad está habilitada, cualquier valor existente de campo de identidad en un Resumen de Pago será reemplazado por los valores de su Resumen de Lotes relacionado. Esto solo se aplica a los Resúmenes de Pago que tienen un Resumen de Lote relacionado, asociado a través del Pago persistido. |
| Esta lógica de enriquecimiento está diseñada para eventual consistencia en ODS Inquiry API consultas. Como resultado, el rest de la ODS Ingestion el procesamiento 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 mantenimiento es:
Configuración predeterminada del enriquecedor de identidades
El enriquecedor de identidad de resumen puede ser configurado utilizando su identificador,summary-identity-enrichment. La ruta de configuración completa se evalúa a ods.houskeeping.summary-identity-enrichment, consistente con el estructura de configuración de tarea predeterminada. Esta tarea utiliza esos valores de configuración predeterminados a menos que se anulen explícitamente.
Para la compatibilidad hacia atrás, el enriquecedor de identidad también admite la ruta de configuración anterior:`ods.persistence.housekeeping.summary.identity-enrichment`. + Si se especifican tanto las rutas de configuración nuevas como las antiguas, la nueva ruta (`ods.housekeeping.summary-identity-enrichment`) tendrá prioridad. |
| ¿Enriquecedor habilitado? | Razonamiento |
|---|---|
Cuando está habilitado (verdadero) |
|
Cuando está deshabilitado (falso) |
|
Cuando está habilitado, el enriquecedor identifica los Resúmenes de Lotes que requieren enriquecimiento al verificar la existencia de la `enrichmentSignal`(un campo de cadena simple; el valor en sí no importa). + Si el enriquecedor fue desactivado previamente cuando se ingirieron los Lotes, esos Resúmenes de Lote no contendrán esta señal y sus Pagos relacionados serán omitidos por el enriquecedor. + Para enriquecer los Resúmenes de Pago previamente ingeridos, establezca `enrichmentSignal` a cualquier valor de String (por ejemplo, "someValue") en los Resúmenes de Lotes relacionados. Una vez que estos Lotes sean actualizados, el enriquecedor incluirá sus Pagos relacionados en los ciclos de enriquecimiento subsiguientes.
|
Resumen CSM Tarea de Mantenimiento de Enriquecimiento
Una tarea de mantenimiento que enriquece el Resumen CSM campo de búsqueda para resúmenes persistidos antes de la versión IPF 2025. 1. 0.
Cuando esté habilitado, las entradas de la base de datos de Resumen heredada se migrarán gradualmente, permitiendo ODS Inquiry para buscarlos utilizando su CSM valor. Esta tarea se aplica a los Resúmenes que tienen un valor en el nivel superior.csm campo pero carecen de un valor en searchFields.csm. El valor existente de la csm el campo se convierte a minúsculas y se utiliza para poblar el searchFields.csm campo para cada Resumen afectado.
Esta funcionalidad debe ser habilitada explícitamente a través de la configuración, las opciones de configuración se pueden encontrar debajo.
El flujo general de alto nivel para esta tarea de mantenimiento es:
Predeterminado CSM Configuración del Enriquecedor
El resumen csm el enriquecedor puede ser configurado utilizando su identificador,summary-csm-enrichment. La ruta de configuración completa se evalúa en ods.houskeeping.summary-csm-enrichment, consistente con el estructura de configuración de tarea predeterminada.
Esta tarea utiliza esos valores de configuración predeterminados a menos que se anulen explícitamente.
Esta tarea también contiene una opción de configuración adicional:
-
ods.housekeeping.summary-csm-enrichment.limit-
Esto controla el número máximo de Resúmenes que serán enriquecidos en una única ejecución.
-
Esto se establece por defecto en 100.
-
| ¿Enriquecedor habilitado? | Razonamiento |
|---|---|
verdadero |
|
falso |
|
PDS Tarea de Mantenimiento de Enriquecimiento de ID de Objeto
Una tarea de limpieza que enriquece el pdsObjectId campo para PDS objetos persistidos antes de la versión IPF 2025. 2. 0.
Cuando está habilitado, legado PDS las entradas de la base de datos serán migradas gradualmente, permitiendo ODS Inquiry para buscarlos utilizando su pdsObjectId valor. Esta tarea se aplica a PDS objetos que actualmente no tienen un valor para el pdsObjectId campo.
Esta funcionalidad debe ser habilitada explícitamente a través de la configuración, las opciones de configuración se pueden encontrar abajo.
El flujo general de alto nivel para esta tarea de mantenimiento es:
Predeterminado PDS Configuración del Enriquecedor de ID de Objeto
El pdsObjectId el enriquecedor puede ser configurado utilizando su identificador,pds-object-id-enrichment. La ruta de configuración completa se evalúa a ods.houskeeping.pds-object-id-enrichment, consistente con el estructura de configuración de tarea predeterminada.
Esta tarea utiliza esos valores de configuración predeterminados a menos que se anulen explícitamente.
Esta tarea también contiene una opción de configuración adicional:
-
ods.housekeeping.pds-object-id-enrichment.limit-
Esto controla el número máximo de PDS objetos que serán enriquecidos en una única ejecución.
-
Esto se establece por defecto en 1000.
-
| ¿Enriquecedor habilitado? | Razonamiento |
|---|---|
verdadero |
|
falso |
|