Quartz定时任务

    Quartz是一个完全由java编写的开源作业调度框架,可以用来创建简单或运行十个、百个甚至是更复杂的程序。而我主要用的是用来设置定时完成任务。首先来看一下如何配置定时任务的时间。

    CronTrigger时间格式配置说明:

    格式:秒 分 时 日 月 周 年

    常用示例

           0 0 12 * * ?     每天12点触发

           0 15 10 ?* *     每天10点15触发

           0 * 14 * * ?     每天14点到14点59分每分触发

           0 0/5 14 * * ?    每天14点到14点59分从整点开始,每隔5分钟触发一次

           0 0-5 14 * * ?   每天14点到14点5分每分钟触发一次

    

    通配符说明:

           * :表示所有值,"*"在子表示式(月)表示每个月的含义。

           / : 用来指定数值的增量, 如上例在(分)表示从0分钟开始,每隔五分钟执行一次

           ?:仅被用于月和星期两个子表达式,表示不指定值,当2个子表达式其中之一被指定了值之后,为“了                避免冲突,需要将另一个自表达式设为"?"

           L : “L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写
                在两个子表达式里的含义是不同的。
                       在月子表达式中,“L”表示一个月的最后一天 ,
                       在星期自表达式中,“L”表示一个星期的最后一天,也就是SAT

               例如:“4L”表示这个月的倒数第4天,“FRIL”表示这个月的最后一个星期五
               注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题

    上述已经分析了每个通配符的含义,下面就看看在项目中的应用:

     配置文件中配置时间:

          <task:scheduled ref="weixinRuleJob" method="beginDayRules" cron="0 0 0 * * ?" />


     java文件中调用:

          

       @Service("TimeFixedSend")
       public class TimeFixedSend{

          MailUitl mailUitl = new MailUitl();


          public void schedualJob(){
              System.out.println("开始执行指定任务.");
              //调用发送邮件的功能
               mailUitl.sendMail("dayMail");
              System.out.println("上一次的任务还未结束");
         }
       }
     注意:一定要加上Service,否则找不到方法

     总结:定时任务完成有多种方式,之前用的是java的timer类来完成这个任务的,但使用timer需要去重新开启一个线程,这对程序来说,又是一种负担,经过他人的指点,采用这种方式,而且这种方式比Timer的时间精确度要高。

           


     

评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值