Poller de Archivos Scheduled Manejador de Ejecución de Tareas

El controlador de ejecución de trabajos es el componente que ejecuta los trabajos.scheduled por el sondeador de archivos scheduler. Es responsable de:

  • Recuperando archivos del directorio configurado utilizando los patrones de nombre de archivo especificados.

  • Determinar el estado procesado de cada archivo (ya procesado, nuevo o cambiado desde la última consulta) y scheduling trabajos para nuevos archivos y, dependiendo de la configuración, archivos modificados.

  • Ejecutando cada scheduled trabajo utilizando la lógica de ejecución definida en el FilePollerAdapter implementación

Determinar el estado procesado de un archivo se realiza mediante el hash de su contenido y metadatos después de la recuperación, y luego comparando estos hashes con los valores almacenados previamente en la base de datos para la misma ruta de archivo. Para archivos nuevos o modificados, la información de hash actualizada se almacena en la base de datos al final de la ejecución del trabajo.

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

¿Se ha cambiado el contenido y los metadatos?

Estado del Archivo Procesado

Acción

No

N/A

NEW

Programe un nuevo trabajo para el archivo.

CHANGED

Reprograme el trabajo actual para el archivo según la política de reprogramación configurada (consulte Política de Reprogramación de Trabajo de Archivos Cambiados sección a continuación)

No

PROCESSED

Ignorar el archivo ya que ha sido procesado previamente.

Procesamiento de Archivos

Estado del Archivo Procesado

El estado procesado de un archivo recuperado se determina al comparar el contenido hash y los metadatos del archivo con una entrada existente en la base de datos que tenga la misma ruta de archivo.

El número máximo de archivos recuperados que pueden tener su contenido y metadatos hashados de manera concurrente se puede configurar utilizando 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 de la hash) para la determinación del estado procesado puede ser configurado 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 de la hash) para la determinación del estado procesado 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 del archivo y los metadatos se hash mediante el algoritmo de resumen de mensaje MD5. El hashing del contenido del archivo se realiza utilizando un búfer.input stream con un tamaño de búfer (en bytes) que puede ser configurado utilizando 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 Trabajo de Archivos Cambiados

El manejador de ejecución de trabajos se encargará de CHANGED archivos basados en la política de reprogramación configurada. Las tres opciones de política disponibles son:

  • NEVER No reprogramar trabajos para archivos modificados.

  • ALWAYS: Siempre reprogramar trabajos para archivos modificados, independientemente del estado de ejecución actual del trabajo del archivo. Esto es más ligero que el IGNORE_TRIGGERED opción, pero puede crear trabajos duplicados para el mismo archivo.

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

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