Java 类org.springframework.batch.core.configuration.DuplicateJobException 实例源码
项目:batch-scheduler
文件:BatchSchedulerConfig.java
private Map<String, Object> registerJob(String jobName) throws DuplicateJobException {
String taskId = jobKeyMap.get(JoinCode.getTaskCode(jobName)).getTaskId();
TaskDefineEntity tm = taskDefineMap.get(taskId);
Job job = taskletConfig.job(conf, jobName, tm.getTaskType(), tm.getScriptFile());
ReferenceJobFactory regJob = new ReferenceJobFactory(job);
try {
jobRegistry.register(regJob);
} catch (DuplicateJobException e) {
jobRegistry.unregister(jobName);
jobRegistry.register(regJob);
}
logger.debug("register job,job name is :{}", jobName);
Map<String, Object> map = new HashMap<>();
map.put("jobName", jobName);
map.put("jobLauncher", jobLauncher);
map.put("jobRegistry", jobRegistry);
map.put("jobKeyStatusService", jobKeyStatusService);
map.put("argumentService", argumentService);
return map;
}
项目:working-examples
文件:Application.java
public static void main(String[] args) throws JobExecutionAlreadyRunningException, JobRestartException,
JobInstanceAlreadyCompleteException, JobParametersInvalidException, DuplicateJobException {
ConfigurableApplicationContext ctx = SpringApplication.run(Application.class, args);
Job simpleJob = ctx.getBean("simpleJob", Job.class);
JobRegistry jobRegistry = ctx.getBean("jobRegistry", JobRegistry.class);
jobRegistry.register(new ReferenceJobFactory(simpleJob));
//JobRepository jobRepository = ctx.getBean("jobRepository", JobRepository.class);
//JobInstance jobInstance = jobRepository.createJobInstance("simpleJob", new JobParameters());
// JobParameters jobParameters = ctx.getBean("basicParameters", JobParameters.class);
//
//JobRegistry jobRegistry = ctx.getBean("mapJobRegistry", JobRegistry.class);
// jobRegistry.register();
// jobLauncher.run(job, jobParameters);
}
项目:batch-scheduler
文件:BatchSchedulerConfig.java
/**
* 将任务与触发器关联
* 每一个任务,对应着一个触发器
* 每一个触发器,也只对应一个任务
*/
private SimpleTrigger createSimpleTrigger(String jobName) throws DuplicateJobException {
SimpleTriggerFactoryBean simpleTriggerFactoryBean = new SimpleTriggerFactoryBean();
JobDetail job = jobDetailFactoryBean(jobName).getObject();
simpleTriggerFactoryBean.setJobDetail(job);
simpleTriggerFactoryBean.setRepeatCount(0);
simpleTriggerFactoryBean.setRepeatInterval(12);
simpleTriggerFactoryBean.setGroup(jobName);
simpleTriggerFactoryBean.setName(jobName);
simpleTriggerFactoryBean.afterPropertiesSet();
return simpleTriggerFactoryBean.getObject();
}
项目:spring-boot-starter-batch-web
文件:CustomJsrJobOperator.java
public void register(Job job, org.springframework.batch.core.JobExecution jobExecution) throws DuplicateJobException {
if(registry.containsKey(jobExecution.getId())) {
throw new DuplicateJobException("This job execution has already been registered");
} else {
registry.put(jobExecution.getId(), job);
}
}