使用Quartz实现定时任务

  Quertz是一个开源的作业任务调度框架,他可以完成像JavaScript定时器类式的功能,其实Java中Timer也可实现部分功能,但相比Quertz还是略逊一筹,本人这次需要解决的就是定期统计消费记录的功能。你还可以用他完成定期执行各类操作的功能。比如

    • 想每月25号,信用卡自动还款
    • 想每年4月1日自己给当年暗恋女神发一封匿名贺卡
    • 想每隔1小时,备份一下自己的学习笔记到云盘

这些问题总结起来就是:

在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。

Quartz就是来干这样的事,你给它一个触发条件的定义,它负责到了时间点,触发相应的Job起来干活。

二:使用方法(主要是Spring整合使用)

采用Spring整合Quartz使用代码方式或者xml方式都可以,我这里也提供两种方式,名称相同适合对比学习。

代码方式

  1:引入配置,pom.xml文件引入下列两个路径(非Maven可自行配置)

 Pom.xml

  2:创建【com.xqc.campusshop.config.quartz】包进行相关配置

(我知道大家不喜欢看源码,但是我还是得说看源码效果好)源码中

productSellDailyService为定期统计消费记录Service接口  

dailyCalculate 为ProductSellDailyService接口中执行定期统计的的方法,

triggerFactory.setCronExpression("? 0 0 * * ? *");为定时的时间,可访问在线cron表达式生成器生成相应时间 

 1 package com.xqc.campusshop.config.quartz;  2  3 import org.springframework.beans.factory.annotation.Autowired;  4 import org.springframework.context.annotation.Bean;  5 import org.springframework.context.annotation.Configuration;  6 import org.springframework.scheduling.quartz.CronTriggerFactoryBean;  7 import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;  8 import org.springframework.scheduling.quartz.SchedulerFactoryBean;  9 10 import com.xqc.campusshop.service.ProductSellDailyService; 11 12 @Configuration 13 public class QuartzConfiguration { 14     15     //定期统计消费记录Service接口16     @Autowired 17     private ProductSellDailyService productSellDailyService; 18     19     @Autowired 20     private MethodInvokingJobDetailFactoryBean jobDetailFactory; 21     22     @Autowired 23     private CronTriggerFactoryBean productSellDailyTriggerFactory; 24     25     /**26

                    
                
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信