博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 定时器的使用
阅读量:7201 次
发布时间:2019-06-29

本文共 2983 字,大约阅读时间需要 9 分钟。

hot3.png

spring定时器应用

 

相关类: 

    org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean 配置定时远行方法

    org.springframework.scheduling.quartz.CronTriggerBean 配置定时调度时间

    org.springframework.scheduling.quartz.SchedulerFactoryBean 调度总控

 

MyEclipse自动生成项目,导入spring3.1 默认jar包,自动配置spring插件,然后开始实现功能

1、继承TimerTask的实现类实现定时器功能,默认选用run方法执行,

 其中TimerTask 可以不用实现,配置文件实现实现的方法即可。

复制代码

package com.test.spring.task;import java.util.Date;import java.util.TimerTask;public class TestSpringTask extends TimerTask  {         public TestSpringTask() {        // TODO Auto-generated constructor stub    }    @Override    public void run() {        // TODO Auto-generated method stub  定时任务代码        System.out.println("定时任务开始,时间:"+ new Date());    }  }

复制代码

2、配置applicationContext.xml文件

复制代码

run
0 */1 * * * ?

复制代码

其中问题

  异常1、.NoClassDefFoundError: org/quartz/spi/Job

    自动导入spring jar 包 缺少quartz的jar 包(与Spring3.1以下版本整合必须使用Quartz1)

  2、NoClassDefFoundError: org/springframework/transaction/TransactionException  

    自动导入spring jar 包 缺少spring.transaction-3.0.5.RELEASE.jar 的jar 包

  3、NoClassDefFoundError: org/slf4j/LoggerFactory

    缺少缺少slf4j-api-1.5.2,slf4j-log4j12-1.5.2,log4j-1.2.8这几个包,导入即可

 

定时器时间配置说明:

  

说明:

         1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)。

               字段名                 允许的值                        允许的特殊字符  

               秒                         0-59                               , - * /  

               分                         0-59                               , - * /  

               小时                   0-23                               , - * /  

               日                         1-31                               , - * ? / L W C  

               月                         1-12 or JAN-DEC          , - * /  

               周几                     1-7 or SUN-SAT            , - * ? / L C #  

               年 (可选字段)     empty, 1970-2099      , - * /

               “?”字符:表示不确定的值

               “,”字符:指定数个值

               “-”字符:指定一个值的范围

               “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m

               “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X

               “W”字符:指定离给定日期最近的工作日(周一到周五)

               “#”字符:表示该月第几个周X。6#3表示该月第3个周五

         2)Cron表达式范例:

                 每隔5秒执行一次:*/5 * * * * ?

                 每隔1分钟执行一次:0 */1 * * * ?

                 每天23点执行一次:0 0 23 * * ?

                 每天凌晨1点执行一次:0 0 1 * * ?

                 每月1号凌晨1点执行一次:0 0 1 1 * ?

                 每月最后一天23点执行一次:0 0 23 L * ?

                 每周星期天凌晨1点实行一次:0 0 1 ? * L

                 在26分、29分、33分执行一次:0 26,29,33 * * * ?

                 每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

"0 0 12 * * ?" 每天中午12点触发

"0 15 10 ? * *" 每天上午10:15触发

"0 15 10 * * ?" 每天上午10:15触发

"0 15 10 * * ? *" 每天上午10:15触发

"0 15 10 * * ? 2005" 2005年的每天上午10:15触发

"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发

"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发

"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发

"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发

"0 15 10 15 * ?" 每月15日上午10:15触发

"0 15 10 L * ?" 每月最后一日的上午10:15触发

"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

每天早上6点

0 6 * * *

每两个小时

0 */2 * * *

晚上11点到早上8点之间每两个小时,早上八点

0 23-7/2,8 * * *

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3

1月1日早上4点

0 4 1 1 *

转载于:https://my.oschina.net/u/3787897/blog/1628744

你可能感兴趣的文章
NFS-网络文件系统配置
查看>>
Apache Thrift入门1-架构&介绍
查看>>
rabbitmq集群是否出现脑裂监控
查看>>
java synchronized关键字的用法--对象锁和类锁
查看>>
任务3 SQL语句相关问题
查看>>
c primer plus(第五版)读书笔计 第四章(3)
查看>>
mvc 当前上下文中不存在名称“ViewBag” 或ViewData
查看>>
AndroidStudio中使用Android.mk
查看>>
YII2.0 高级模板-添加自定义模板
查看>>
Cisco 思科网络设备模拟器 GNS3 使用指南
查看>>
Android版添加phonegap--百度api定位插件教程
查看>>
arm c中字节对齐
查看>>
51cto我来了
查看>>
Linux的Web服务基础概念
查看>>
LNMP搭建
查看>>
RecyclerView的基础使用
查看>>
nginx学习笔记
查看>>
安装PHP扩展eaccelerator加速器
查看>>
SVN 学习
查看>>
SmartSVN设置ignoreList
查看>>