Documentation for a newer release is available. View Latest

Controlador de ejecución de trabajos programados del File Poller

El controlador de ejecución de trabajos es el componente que ejecuta los trabajos programados por el planificador del file poller. Es responsable de:

  • Recuperar archivos del directorio configurado usando los patrones de nombre de archivo especificados

  • Determinar el estado de procesamiento de cada archivo (ya procesado, nuevo o cambiado desde el último sondeo) y programar trabajos para archivos nuevos y, según la configuración, para archivos cambiados.

  • Ejecutar cada trabajo programado utilizando la lógica de ejecución definida en la implementación de FilePollerAdapter

La determinación del estado de procesamiento de un archivo se hace calculando el hash de su contenido y metadatos después de la recuperación, y comparando estos hashes con los valores almacenados previamente en la base de datos para la misma ruta del archivo. Para archivos nuevos o cambiados, la información de hash actualizada se almacena en la base de datos al final de la ejecución del trabajo.

¿La ruta de archivo ya existe en la base de datos?

¿Contenido y metadatos cambiaron?

Estado de procesamiento del archivo

Acción

No

N/A

NEW

Programar un nuevo trabajo para el archivo

CHANGED

Reprogramar el trabajo actual para el archivo según la política de reprogramación configurada (consulta la sección Política de reprogramación de trabajos para archivos cambiados más abajo)

No

PROCESSED

Ignorar el archivo ya que ha sido procesado previamente

Procesamiento de archivos

Estado de procesamiento del archivo

El estado de procesamiento de un archivo recuperado se determina comparando el contenido y los metadatos con hash del archivo contra una entrada existente en la base de datos con la misma ruta de archivo.

El número máximo de archivos recuperados que pueden tener su contenido y metadatos con hash de forma concurrente se puede configurar usando el siguiente parámetro: ipf.file-poller.pollers[N].file-processing-parallelism (donde N es el índice del trabajo de sondeo especificado, comenzando desde 0). El valor predeterminado es 128.

El tamaño del búfer que controla el lote máximo de archivos recuperados (después del hashing) para la determinación del estado de procesamiento se puede configurar utilizando el siguiente parámetro: ipf.file-poller.pollers[N].file-processing-buffer. El valor predeterminado es 500.

El tamaño del búfer que controla el lote máximo de archivos recuperados (después del hashing) para la determinación del estado de procesamiento se puede configurar utilizando el siguiente parámetro: ipf.file-poller.pollers[N].file-processing-buffer. Esto determina cuántos archivos se envían por consulta a la base de datos y el número total de consultas a la base de datos realizadas por ciclo de sondeo. El valor predeterminado es 500.

Hashing

El contenido y los metadatos de los archivos se someten a hashing utilizando el algoritmo de resumen de mensajes MD5. El hashing del contenido del archivo se realiza utilizando un flujo de entrada con búfer con un tamaño de búfer (en bytes) que se puede configurar mediante el siguiente parámetro: ipf.file-poller.pollers[N].file-content-hash-buffer-bytes. El valor predeterminado es 8192 (8KB).

Política de reprogramación de trabajos para archivos cambiados

El controlador de ejecución de trabajos manejará los archivos CHANGED según la política de reprogramación configurada. Las tres opciones de política disponibles son:

  • NEVER: No reprogramar trabajos para archivos cambiados.

  • ALWAYS: Reprogramar siempre los trabajos para archivos cambiados, independientemente del estado de ejecución del trabajo actual del archivo. Esto es más liviano que la opción IGNORE_TRIGGERED, pero puede crear trabajos duplicados para el mismo archivo.

  • IGNORE_TRIGGERED: No reprogramar trabajos si el estado de ejecución anterior del trabajo es TRIGGERED o no se puede encontrar el trabajo anterior (ya que no es posible determinar si el trabajo anterior ya se ejecutó)

La política de reprogramación de archivos cambiados se puede configurar mediante el siguiente parámetro: ipf.file-poller.pollers[N].changed-file-job-reschedule-policy. El valor predeterminado es ALWAYS.