spring批处理错误NoSuchJobException:没有此类作业(在注册表或历史数据中)

spring批处理错误NoSuchJobException:没有此类作业(在注册表或历史数据中),spring,spring-boot,spring-batch,Spring,Spring Boot,Spring Batch,我是新来的。我试图写一个代码来运行未完成的作业。我实际上得到了以下错误: org.springframework.batch.core.launch.NoSuchJobException:没有这样的 作业(在注册表或历史数据中) 下面是我尝试过的代码,有人能告诉我下面出了什么问题吗? void restartUncompletedJobs() { try { String jobName = "job1";

我是新来的。我试图写一个代码来运行未完成的作业。我实际上得到了以下错误:

org.springframework.batch.core.launch.NoSuchJobException:没有这样的 作业(在注册表或历史数据中)

下面是我尝试过的代码,有人能告诉我下面出了什么问题吗?

void restartUncompletedJobs() {
        try {
            String jobName = "job1";
            
            Job job = jobRegistry.getJob(jobName); //HERE GETTING EXCEPTION

            List<Long> jobInstances = jobOperator.getJobInstances(job.getName(), 0, 5);
            for (Long jobInstanceId : jobInstances) {

                Set<Long> jobRunningExecutions = jobOperator.getRunningExecutions(jobName);
                
                if (jobRunningExecutions.size() > 0) {
                    jobOperator.startNextInstance(jobName);
                } else {
                    jobOperator.restart(jobInstanceId);
                }

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
void restartUncompletedJobs(){
试一试{
字符串jobName=“job1”;
Job Job=jobRegistry.getJob(jobName);//此处获取异常
List jobInstances=jobOperator.getJobInstances(job.getName(),0,5);
for(长jobInstanceId:jobInstances){
设置jobRunningExecutions=jobOperator.getRunningExecutions(jobName);
如果(jobRunningExecutions.size()>0){
jobOperator.StartEndistance(作业名称);
}否则{
jobOperator.restart(jobInstanceId);
}
}
}捕获(例外e){
e、 printStackTrace();
}
}

您需要自己填充注册表,或者在应用程序上下文中注册一个来填充注册表中的所有作业。

有人对上述内容有任何想法吗?我面临着类似的问题:,没有找到任何答案..仍在寻找解决方案。。对上述问题有什么想法吗?我已经尝试过使用BeanJobRegistryBeanPostProcessor,即使仍然面临同样的问题。。如果你不介意,请尝试上面的代码片段并粘贴我的工作代码。顺便说一句,我只使用Spring Boot。你可以在这里找到一个例子:不客气!如果答案有帮助,请接受。