es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La orden de procesamiento personalizada de Spring Integration no funciona.

He configurado la integración de Spring para sondear un directorio. He configurado el InBoundChannelAdaptor con la configuración de sondeo de máximo mensajes por sondeo = -1 y disparador = PeriodicTrigger(1000)

Además, he proporcionado un comparador personalizado al crear el FileReadingMessageSource, para procesar los archivos según la fecha de modificación.

FileReadingMessageSource source = new FileReadingMessageSource(new Comparator<file>() {
    @Override
    public int compare(File a , File b) {
        if(a.lastModified() > b.lastModified()) {
           return 1;
        } else {
            return -1;
        }
    }
})

Mi carpeta tiene 2000 archivos, pero los archivos no se procesan en el orden de las últimas modificaciones, lo que significa que el archivo más antiguo debería procesarse primero, pero eso no está sucediendo.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según la configuración proporcionada, parece que la integración de Spring está realizando correctamente la consulta del directorio y utilizando el comparador personalizado para procesar los archivos según la fecha y hora de modificación. Sin embargo, no está claro por qué el archivo más antiguo no se está procesando primero.

    Una posible explicación podría ser que haya otro componente en el flujo de integración que esté reordenando los mensajes antes de que lleguen al FileWritingMessageHandler. Puede ser necesario revisar todo el flujo de integración para identificar cualquier otro componente que pueda estar ordenando o filtrando los mensajes.

    Otra posible explicación podría estar relacionada con el entorno de ejecución. Por ejemplo, si la aplicación se está ejecutando en un entorno multinucleo, el orden de procesamiento de archivos puede verse afectado por el nivel de concurrencia. En este caso, puede ser necesario ajustar la configuración para garantizar que el procesamiento de archivos se realice de forma secuencial.

    En general, se requiere una investigación y análisis adicionales para determinar la causa raíz del problema e identificar una solución adecuada.

Comments are closed.