如何安排Spring批处理作业以重新启动应用程序

如何安排Spring批处理作业以重新启动应用程序,spring,spring-boot,spring-mvc,spring-batch,spring-batch-tasklet,Spring,Spring Boot,Spring Mvc,Spring Batch,Spring Batch Tasklet,我有一个在构造函数中编写的方法。当我计划一个Spring批处理作业时,该方法不会在特定的时间间隔内被调用。只有在Spring批处理应用程序启动时才会被调用。有谁能建议我如何计划一个将重新启动我的Spring批处理应用程序的逻辑吗在特定时间间隔内应用。 private int nextULPIndex; 私有列表最终数据; 公共JsonItemReaderFromULProspector(){ ulprospectorapcall.runShellScript(); info(“在JSONIMRe

我有一个在构造函数中编写的方法。
当我计划一个Spring批处理作业时,该方法不会在特定的时间间隔内被调用。
只有在Spring批处理应用程序启动时才会被调用。
有谁能建议我如何计划一个将重新启动我的
Spring批处理
应用程序的逻辑吗在特定时间间隔内应用。

private int nextULPIndex;
私有列表最终数据;
公共JsonItemReaderFromULProspector(){
ulprospectorapcall.runShellScript();
info(“在JSONIMReaderFromulProspector内部成功执行了对ULProspector的API调用”);
logger.info(“JSONIMReaderFromulProspector的内部构造函数”);
初始化();
}
私有void初始化(){
List ulpData=readjsonfrompulp.getJsonObject();
info(“初始化()已启动”);
finalUpData=集合。不可修改列表(ulpData);
nextULPIndex=0;
}
FinalUpData在ItemReader类的run()方法中调用

我无法在run()内调用initialize(),因为run()方法会根据块大小重复调用

公共类JSONIMReaderFromulProspector实现ItemReader{
@凌驾
public Data read()引发异常、UnexpectedInputException、ParseException、NonTransientResourceException{
数据NEXTUPDATA=null;
info(“read()方法JSONIMReaderFromulProspector类:Start”);
如果(nextULPIndex
该类是从BatchConfig类调用的,如下所示

@StepScope
@懒惰的
ItemReader(){
返回新的JSONIMReaderFromulProspector();
}
@豆子
@懒惰的
公共步骤step1()引发异常{
返回stepBuilderFactory.get(“step1”).chunk(10).reader(reader()).processor(ulProspectorDataProcessor()).writer(ulpDataWriter.jsonFileDatabaseItemWriter()).build();
}
@豆子
公共作业Job()引发异常{
返回此.jobBuilderFactory.get(“作业”).incrementer(新的RunIdIncrementer())
.start(calllpapiestep())
.next(deleteRecordsFromTableStep())
.next(step1()).build();}

你能发布更多的代码让我理解这个问题吗Hi Saurabh,我添加了更多的代码片段供你理解。1)基本上我调用的是一个shell脚本(创建JSON文件)第1步是读取JSON对象并将其转换为POJO对象以插入数据库。您能发布更多代码以便我理解问题吗?Hi Saurabh,我添加了更多代码片段供您理解。1)基本上我调用了一个shell脚本(创建JSON文件)第1步是读取JSON对象并将其转换为POJO对象以插入数据库。