Это основной класс. Теперь моя проблема:
Планировщик работает и повторяется каждую минуту, но задание выполняется только при запуске приложения (считыватель, процессор и писатель выполняются только один раз при запуске) и когда запускается планировщик в основном классе он не может вызвать пакетное задание.
@EnableMongoAuditing
@SpringBootApplication
@EnableBatchProcessing
@EnableScheduling
//@EnableEurekaClient
public class RewardPocApplication extends SpringBootServletInitializer {
@Autowired
ApplicationConfig applicationConfig;
@Autowired
private JobLauncher jobLauncher;
@Autowired
Job job;
/**
* @param args Java args
*/
public static void main(String[] args) {
SpringApplication.run(RewardPocApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(RewardPocApplication .class);
}
@Scheduled(cron = "0 */1 * * * ?")
public void triggerRewardManagementJob() throws Exception {
JobParameters params = new JobParametersBuilder()
.addString("readRewardPointsData", String.valueOf(System.currentTimeMillis()))
.toJobParameters();
JobExecution execution = jobLauncher.run(job, params);
System.out.println("Exit Status : " + execution.getStatus());
}
Это мой Java Код пакетного задания
@Configuration
@EnableScheduling
@EnableBatchProcessing
public class ApplicationConfig {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MailUtil mailUtil;
@Autowired
RewardRepository rewardRepository;
@Bean
public Job rewardManagementJob() throws Exception {
System.out.println("Deepak" + "Job Started");
return jobBuilderFactory.get("rewardManagementJob")
.incrementer(new RunIdIncrementer())
.flow(step1())
.end()
.build();
}
@Bean
public Step step1() throws Exception{
System.out.println("Deepak" + "Step Started");
return stepBuilderFactory.get("step1").<RewardEntity, RewardEntity>chunk(10)
.reader(reader())
.processor(process())
.writer(writter())
.build();
}