Core - Cambios y Soluciones

Esta página cubre los principales cambios y correcciones proporcionados en la versión IPF-2025.2.2.

Poller de Archivos IPF

Agregado

  • Nuevas opciones de configuración a nivel de trabajo de sondeo:

    • ipf.file-poller.pollers[N].changed-file-job-reschedule-policy property: Proporciona tres opciones para manejar "archivos cambiados" (es decir, aquellos con la misma ruta de archivo que un archivo procesado anteriormente, pero con contenido/metadata diferente, como archivos que aún se estaban subiendo durante la consulta anterior):`NEVER`,ALWAYS,IGNORE_TRIGGERED. El opción predeterminada es ALWAYS.

    • ipf.file-poller.pollers[N].file-processing-parallelism: Establece el número máximo de archivos recuperados que pueden tener sus atributos mapeados (leyendo los metadatos del archivo y generando hashes) de manera concurrente. El valor predeterminado es 128.

    • ipf.file-poller.pollers[N].file-processing-buffer: Proporciona control de contrapresión al limitar el número máximo de archivos recuperados (después de mapping) que puede ser enviado en cada lote para la búsqueda y procesamiento en la base de datos para determinar si los archivos son nuevos, han cambiado o ya han sido procesados. El valor predeterminado es 500.

    • ipf.file-poller.pollers[N].file-content-hash-buffer-bytes: Establece el tamaño del búfer (en bytes) para el BufferedInputStream utilizado al calcular el hash del contenido de un archivo recuperado. El valor predeterminado es 8192.

  • jobStatus y lastUpdated campos añadidos a SchedulerJobEntity.JobStatus ilustra si un trabajo scheduled por el poller para un archivo "cambiado" ha sido cancelado según la lógica del archivo "cambiado" y previene el escenario (observado en prueba de la lógica anterior) donde más de uno scheduler se podría crear una entidad de trabajo para un archivo (si se recupera dos veces y determinado que es un archivo "cambiado" la segunda vez) y consultar la colección devuelve más de una entrada, rompiendo el contrato de devolución Mono<>) y lanzando una excepción.

    === Cambiado

  • El contenido de los archivos recuperados ahora se ha hashado utilizando un búfer.input stream con un tamaño de búfer configurable, en lugar de cargar el archivo completo en memoria.

  • El id campo en el FileEntity la colección ahora almacena la ruta completa del archivo en lugar de solo el nombre del archivo. Esto aborda un problema en el que los archivos con el mismo nombre en diferentes carpetas (recuperados por diferentes trabajos de sondeo, por ejemplo) se tratarían como un solo archivo en la base de datos, por lo que el segundo archivo se marcaría erróneamente como "cambiado". El @Id nombre del campo en el FileEntity la entidad del documento ha sido cambiada de fileName to filePath para reflejar esta actualización. === Fijo

  • FilePollerActor ahora se recupera automáticamente si se produce una excepción al intentar programar los trabajos del sondeo al inicio.