В пакете Spring Tasklet
представляет собой интерфейс, который будет вызываться только для выполнения одной задачи, например, очистки или настройки ресурсов до или после выполнения любого шага. В этом примере мы покажем вам, как использовать Tasklet
для очистки ресурса (папок) после завершения пакетного задания.
P.S То Задача создания файла приведенный ниже пример взят из Образцы весенней партии проект.
1. Пример набора задач
Класс Java для реализации Tasklet
интерфейса и удаления всех файлов в данном каталоге.
package com.mkyong.tasklet; import java.io.File; import org.springframework.batch.core.StepContribution; import org.springframework.batch.core.UnexpectedJobExecutionException; import org.springframework.batch.core.scope.context.ChunkContext; import org.springframework.batch.core.step.tasklet.Tasklet; import org.springframework.batch.repeat.RepeatStatus; import org.springframework.beans.factory.InitializingBean; import org.springframework.core.io.Resource; import org.springframework.util.Assert; public class FileDeletingTasklet implements Tasklet, InitializingBean { private Resource directory; @Override public void afterPropertiesSet() throws Exception { Assert.notNull(directory, "directory must be set"); } @Override public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { File dir = directory.getFile(); Assert.state(dir.isDirectory()); File[] files = dir.listFiles(); for (int i = 0; i < files.length; i++) { boolean deleted = files[i].delete(); if (!deleted) { throw new UnexpectedJobExecutionException( "Could not delete file " + files[i].getPath()); } else { System.out.println(files[i].getPath() + " is deleted!"); } } return RepeatStatus.FINISHED; } public Resource getDirectory() { return directory; } public void setDirectory(Resource directory) { this.directory = directory; } }
2. Пакетные Задания
Пакетное задание для выполнения следующих шагов:
Шаг 1 – Прочитать несколько файлов из csv/входов/
и записать их куда-нибудь. Шаг 2 – После завершения шага 1 запустите fileDeletingTasklet
, чтобы удалить все файлы из каталога csv/входные данные/
.
Скачать Исходный Код
Рекомендации
Оригинал: “https://mkyong.com/spring-batch/spring-batch-tasklet-example/”