weixin_42767087
辉尝爪哇
采纳率6.3%
2019-07-16 10:57

为什么我在springboot2.0上面整合quartz做的定时任务,移到springboot1.5上面启动没有反应?

为什么我在springboot2.0上面整合quartz做的定时任务,移到springboot1.5上面启动没有反应?才开始使用quartz,一脸懵逼

下面是2.0上面的代码:

package com.com.dandelion.delivery.admin.job;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

import java.util.Date;

public class MyCronJob extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("任务执行了" + new Date());
    }
}

上面是定时任务;

@Configuration
public class QuartzConfiguration {
    // 使用jobDetail包装job
    @Bean
    public JobDetail myCronJobDetail() {
        return JobBuilder.newJob(MyCronJob.class).withIdentity("myCronJob").storeDurably().build();
    }

    // 把jobDetail注册到Cron表达式的trigger上去
    @Bean
    public Trigger CronJobTrigger() {

        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/10 * * * * ?");

        return TriggerBuilder.newTrigger()
                .forJob(myCronJobDetail())
                .withIdentity("myCronJobTrigger")
                .withSchedule(cronScheduleBuilder)
                .build();
    }

}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • kingmore96 GNin_99 2年前

    因为springboot2.0版本会自动注入一个scheduler调度器,你定义的bean会自动绑定到调度器上。
    1.5版本没有自动注入一个调度器,你可以试试手动注入,通过factory。

    点赞 评论 复制链接分享
  • wzy18210825916 Java开发之旅 2年前

    太复杂了,用Spring Boot中的@WebListener注解就行了

    点赞 评论 复制链接分享

为你推荐