【问题标题】:Quartz + Spring Batch in Spring bootSpring Boot 中的 Quartz + Spring Batch
【发布时间】:2016-10-10 13:59:31
【问题描述】:

我正在尝试开发一个集成了 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】:

    Spring Batch Job 需要使用 Spring Batch Job Launcher 来启动。

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

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

    【讨论】:

      猜你喜欢
      • 2017-09-27
      • 2018-07-10
      • 1970-01-01
      • 2018-06-13
      • 2016-07-05
      • 2015-07-07
      • 2018-01-17
      • 2019-06-06
      • 2018-12-09
      相关资源
      最近更新 更多