zoukankan      html  css  js  c++  java
  • Quartz定时任务

    Quartz简介

    quartz是一个由java编写的任务调度库,由OpenSymphony组织开源出来。绝大多数公司都会用到任务调度这个功能, 比如公司需要定期执行任务调度生成报表, 或者比如博客什么的定时更新之类的,都可以靠Quartz来完成。

    Quartz的基本组成部分:

    • 调度器:Scheduler

    • 任务:JobDetail

    • 触发器:Trigger

    案例:

    把Redis中的博客点击量在凌晨0点时持久化进Mysql

    1.添加Quartz依赖

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

    2.创建一个任务

    import com.cch.gofy.service.ArticleInfoService;
    import lombok.extern.slf4j.Slf4j;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.scheduling.quartz.QuartzJobBean;
    
    import java.util.Date;
    
    @Slf4j
    public class PersistenceJob extends QuartzJobBean {
    
        @Autowired
        ArticleInfoService articleInfoService;
    
        @Override
        protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
            log.info("PersistenceJob---------"+new Date());
            articleInfoService.persistenceTraffic();//将redis里的访问量持久化方法
        }
    }

    3.创建Quartz配置类

    import com.cch.gofy.util.PersistenceJob;
    import org.quartz.*;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class QuartzConfig {
    
        String identity = "PersistenceTraffic";
    
        @Bean
        public JobDetail quartzJob(){
            return JobBuilder.newJob(PersistenceJob.class)
            .withIdentity(identity).
            storeDurably().build();
        }
    
        @Bean
        public Trigger quartzTrigger(){
            CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0 0 0 * * ? "); //参数为Cron表达式,既让job任务执行的时间,这里是每天凌晨0点
    
            return TriggerBuilder.newTrigger().forJob(identity)
                    .withIdentity(identity)
                    .withSchedule(scheduleBuilder)
                    .build();
        }
    
    }

     我的个人博客 www.gofy.top

  • 相关阅读:
    设置ios中imageView图片自适应,
    IOS应用之间调用
    XCode debug中添加查找debug和控制台的办法
    初学Java scirpt(判断、循环语句)
    Java Script 字符串操作
    初学 Java Script (算数运算及逻辑术语)
    Ubuntu 配置JDK
    SQL Server 跨库复制表方法小笔记
    Ubuntu 重装 mysql
    Java Script 数组操作
  • 原文地址:https://www.cnblogs.com/gaofei200/p/12701893.html
Copyright © 2011-2022 走看看