Estou utilizando spring batch em meu atual projeto mas estou com algumas duvidas.
quando o job chama o meu reader, eu preciso ler um arquivo e processa-lo mas se não tiver o arquivo eu preciso terminar o job sem dar nenhum erro.
Alguém tem idéia de como fazer isso? estou usando spring batch com spring boot e as configurações são programaticamente.
Provavelmente a leitura do arquivo é feita dentro de um método. Basta circundar o código em questão com um try/catch e, no catch, apenas logar a inexistência do arquivo, data e hora da ocorrência e “engolir” a IOException, não?
Gostaria que fosse simples assim, a questão é que quando se criar um reader utilizado por um job, ele precisa de um retorno, se o retorno for null vai dar um null pointer exception no meio do job o que vai indicar um problema que não existe.
Preciso dizer pro spring batch parar o job caso não exista um arquivo ou dizer de alguma forma pro spring boot não executar o job automaticamente.
O problema é que todo mundo quer complicar demais.
Por que não empacota o retorno em um objeto, uma espécie de DTO, que contenha um header contendo a informação de retorno ok ou com erro e, um body onde, efetivamente, existiria o conteúdo esperado?
Assim você teria o retorno sempre diferente de nulo, mesmo que o arquivo não exista e ainda saberia se houve outro erro.