SpringBatch定时任务的ChunkStep没有被重复执行

JobLauncher的代码:
@Component
@Controller
public class JobLauncherConfig {
@Autowired
private Job BatchJob;

@Autowired
private JobLauncher jobLauncher;

@Autowired
private ComDataHolder comDataHolder;

private long a;

@Scheduled(fixedDelay = 6000)
public void demoScheduled() throws Exception {

    System.out.println("Scheduled run!");
    a = a + 1;
    comDataHolder.setTaskletloopcnt((long) 0);
    JobParameters jobParameters = new JobParametersBuilder().addLong("var", a)
            .addLong("cnt", comDataHolder.getTaskletloopcnt()).toJobParameters();
    jobLauncher.run(BatchJob, jobParameters);
}

}
Job的代码:
@Configuration
@EnableBatchProcessing
public class Batchconfig implements StepExecutionListener {

@Autowired
private JobBuilderFactory jobBuliderFactory;

@Autowired
private StepBuilderFactory stepBuliderFactory;

private Map<String, JobParameter> parameters;

@Bean
public Job BatchJob() {
    System.out.println("BatchJob Run!");

    return jobBuliderFactory.get("BatchJob").listener(new JobListener()).start(step1())
            .next(step2()).build();
}

@Bean
public Step step1() {

    return this.stepBuliderFactory.get("step1").listener(this).<String, String>chunk(2)
            .reader(reader()).processor(processor()).writer(writer()).build();
}

@Bean
public Step step2() {

    return this.stepBuliderFactory.get("step2").listener(this).tasklet(new Tasklet() {

        @Override
        public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext)
                throws Exception {
            System.out.println("**********************");
            System.out
                    .println("this is tasklet step2!" + String.valueOf(parameters.get("cnt")));
            System.out.println("**********************");
            return null;
        }
    }).build();
}

@Bean
public ItemReader<String> reader() {

    System.out.println("ItemReader run!");

    List<String> strlist = new ArrayList<>();

    strlist.add("00000001");
    strlist.add("00000002");
    strlist.add("00000003");

    System.out.println("ItemReader end!");
    return new ListItemReader<>(strlist);
}

@Bean
public ItemProcessor<String, String> processor() {

    return new ItemProcessor<String, String>() {

        @Override
        public String process(String item) throws Exception {
            System.out.println("ItemProcessor start!");
            item = item + "processed";
            System.out.println("ItemProcessor:" + item);
            System.out.println("ItemProcessor end!");
            return item;
        }
    };
}

@Bean
public ItemWriter<String> writer() {

    return new ItemWriter<String>() {
        @Override
        public void write(List<? extends String> items) throws Exception {
            System.out.println("ItemWriter start!");
            for (String item : items) {
                System.out.println("ItemWriter:" + item);
            }
            System.out.println("ItemWriter end!");
        }
    };
}

@Override
public void beforeStep(StepExecution stepExecution) {
    System.out.println("Listener beforeStep");

    parameters = stepExecution.getJobExecution().getJobParameters().getParameters();
}

@Override
public ExitStatus afterStep(StepExecution stepExecution) {
    System.out.println("Listener afterStep");
    return null;
}

}

执行后只有第一次执行的Chunk的reader process 和write执行了
之后都没有执行