LongRunningTasklet.java
package com.namics.oss.spring.support.batch.starter.sample.tasklet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
import static java.lang.Thread.sleep;
import static java.util.concurrent.TimeUnit.MINUTES;
/**
* LongRunningTasklet.
*
* @author lboesch, Namics AG
* @since 28.08.17 15:08
*/
public class LongRunningTasklet implements Tasklet {
private static final Logger LOG = LoggerFactory.getLogger(LongRunningTasklet.class);
protected final int minutesToSleep;
public LongRunningTasklet(int minutesToSleep) {
this.minutesToSleep = minutesToSleep;
}
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
LOG.warn("start of long running tasklet");
try {
sleep(MINUTES.toMillis(minutesToSleep));
} catch (RuntimeException e) {
LOG.error("exception on tasklet!", e);
}
LOG.warn("end of long running tasklet");
return RepeatStatus.FINISHED;
}
}