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
FilePollerAdapterimplementació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 |
|
Programe un nuevo trabajo para el archivo. |
Sí |
Sí |
|
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) |
Sí |
No |
|
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:
-
NEVERNo 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 elIGNORE_TRIGGEREDopción, pero puede crear trabajos duplicados para el mismo archivo. -
IGNORE_TRIGGERED: No reprogramé trabajos si el estado de ejecución del trabajo anterior esTRIGGEREDo 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.