Java 类org.springframework.batch.core.configuration.support.ReferenceJobFactory 实例源码
项目: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);
}