SpringBoot 之Quartz的使用

对于Quartz的使用,还是想说一句,SpringBoot真的很好用啊!

第一步:当然是引入依赖啦

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>


    <!-- quartz -->
    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-quartz</artifactId>
     </dependency>

 

第二步:创建你的调度任务啊,继承 QuartzJobBean,然后重写方法(自己根据需求编写业务逻辑)

public class FileHandleQuartz extends QuartzJobBean{
private Logger logger = LoggerFactory.getLogger(FileHandleQuartz.class);
    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        logger.info("定时任务执行啦!");
    }
}

第三步:当然要配置了

@Configuration
public class QuartzConfiguration {
    @Bean
    public JobDetail jobDetail() {
        return JobBuilder.newJob(FileHandleQuartz.class)
                .withIdentity("fileHandleQuartzJobDetail") //自己取名
                .storeDurably().build();
    }
    @Bean
    public Trigger trigger() {
        SimpleScheduleBuilder schedBuilder=SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever(); //时间自己定,根据方法进行修改时间
        return TriggerBuilder.newTrigger().forJob( jobDetail()).withIdentity("fileHandleQuartzJobTriger") //自己取名
                .withSchedule(schedBuilder).build();
    }
}

当然啦,如果想用cron表达式的,直接欢迎Schedule就好

CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("*/5 * * * * ?"); //替换上面的第一行就好

 

第二种通过注解的方式:

@EnableScheduling
@Configuration
public class QuartzAnnotationTest {
    private Logger logger = LoggerFactory.getLogger(QuartzAnnotationTest.class);
    @Scheduled(cron = "*/5 * * * * ?")
    public void testAnnotation(){
       logger.info("注解的方式测试啦!");
    }
}

   对于两种方式都可以实现定时任务,区别在于,在使用配置类(文件)的方式的时候,在项目启动的时候就会执行,使用注解的方式会在启动完成之后时间算起执行,少执行一次调度,有不对的或者补充的,欢迎哈。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值