zoukankan      html  css  js  c++  java
  • 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("注解的方式测试啦!");
        }
    }

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

  • 相关阅读:
    与客服聊天功能测试点
    京东优惠券如何测试
    Linux笔试题
    线程与线程池原理
    PyCharm 介绍、安装、入门使用
    银行APP测试用户体验性方面
    python的闭包
    列表解析2
    深入函数
    再谈装饰器@@@
  • 原文地址:https://www.cnblogs.com/gdhzdbh/p/10643856.html
Copyright © 2011-2022 走看看