Spring boot - Ler arquivos de um diretório externo automaticamente

Bom dia pessoal.

Preciso desenvolver uma aplicação (Spring boot) que faça o seguinte processo. Vou ter um diretório NAS configurado onde durante o dia vão ser gerados arquivos e preciso que minha api fique lendo os arquivos desse diretório “online”, ou seja quando chegar o arquivo dispare um método que irá fazer a leitura do mesmo e processar ele.

Já desenvolvi o processo de ler o arquivo e processar ele porém não sei como fazer esse processo de ler automaticamente do diretório assim que o arquivo chegar lá. Resumindo, o método deve ficar esperando os arquivos entrarem no diretório e assim que chegar fazer a leitura do mesmo.

Alguém para me dar uma idéia de como fazer isso?

Tem o WatchService:

https://docs.oracle.com/javase/tutorial/essential/io/notification.html

Já fiz uns testes aqui com ele e funciona de boas, só não sei se ele funcionaria nessa sua situação.

1 curtida

Uma alternativa é criar um scheduler para checar se existem arquivos para serem processados no diretório a cada X intervalo de tempo, quando houver você processa, caso contrário não faz nada.
O único ponto de atenção é checar se já existe um processamento em andamento antes de iniciar um novo.

1 curtida