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);
}