Spring引导中的Quartz + Spring Batch

问题描述 投票:1回答:1

我正在尝试开发一个Quartz和Spring Batch集成的spring应用程序。由于某些原因,我无法正确运行它并获得一些编译错误。

码:

QuartzConfiguration

@Configuration 
@ComponentScan("com.concretepage") 
public class QuartzConfiguration {

    @Bean
    public MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean() {
        MethodInvokingJobDetailFactoryBean obj = new MethodInvokingJobDetailFactoryBean();
        obj.setTargetBeanName("jobone");
        obj.setTargetMethod("myTask");
        return obj;
    }

    @Bean
    public CronTriggerFactoryBean cronTriggerFactoryBean(){
        CronTriggerFactoryBean stFactory = new CronTriggerFactoryBean();
        SpringBatchJobs batch = new SpringBatchJobs();
        stFactory.setJobDetail(batch.job()); // here i'm getting some compilcation error like "The method job() from the type SpringBatchJobs refers to the missing type Job"
        stFactory.setStartDelay(3000);
        stFactory.setName("mytrigger");
        stFactory.setGroup("mygroup");
        stFactory.setCronExpression("0/1 * * * * ?");
        return stFactory;
    }

    @Bean
    public SchedulerFactoryBean schedulerFactoryBean() {
        SchedulerFactoryBean scheduler = new SchedulerFactoryBean();
        scheduler.setTriggers(cronTriggerFactoryBean().getObject());
        return scheduler;
    }
}  

春季批次:

@EnableBatchProcessing
public class SpringBatchJobs {

    @Autowired
    private JobBuilderFactory jobs;

    @Autowired
    private StepBuilderFactory steps;

    @Bean
    protected Tasklet tasklet() {

        return new Tasklet() {
            @Override
            public RepeatStatus execute(StepContribution contribution,
                    ChunkContext context) {
                return RepeatStatus.FINISHED;
            }
        };

    }

    @Bean
    public Job job() throws Exception {
        return this.jobs.get("job").start(step1()).build();
    }

    @Bean
    protected Step step1() throws Exception {
        return this.steps.get("step1").tasklet(tasklet()).build();
    }

}

问题出在以下几行

stFactory.setJobDetail(batch.job()); // here i'm getting some compilcation error like "The method job() from the type SpringBatchJobs refers to the missing type Job"

如何在spring boot中使用Quartz2运行Spring Batch作业?任何的想法

spring-boot spring-batch quartz-scheduler spring-4
1个回答
-1
投票

Spring批处理作业需要使用spring批处理作业启动器启动。

有关如何操作的详细信息,请参阅以下链接。

https://examples.javacodegeeks.com/enterprise-java/spring/batch/quartz-spring-batch-example/

© www.soinside.com 2019 - 2024. All rights reserved.