• 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("注解的方式测试啦!");
        }
    }

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

  • 相关阅读:
    工作中用到知识点
    工作中遇到问题的解决办法
    透明度兼容性(ie8以上)
    js阻止浏览器默认行为
    js停止冒泡和阻止浏览器默认行为
    js添加事件通用方法
    jquery常用插件
    延迟加载、异步加载js
    JavaScript兼容性问题
    创建对象的一种方式&一种继承机制(代码实例)
  • 原文地址:https://www.cnblogs.com/gdhzdbh/p/10643856.html
Copyright © 2020-2023  润新知