Spring学习:Spring调度任务--精确指定任务的运行时间

原创 2007年09月22日 17:09:00

前面我们在调度一个工作的时候使用的是SimpleTriggerBean,它的配置如下:

    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">

        <property name="jobDetail">

            <ref bean="jobDetail"/>

        </property>

        <property name="repeatInterval">

            <value>60000</value>

        </property>

</bean>

这里我们设置了每隔一分钟执行一次我们创建的工作。SimpleTriggerBean只能让我们指定工作执行的频率,不能让我们指定工作执行的具体时间。比方说,我们要求在每天的晚上10点执行某个具体的工作,那么SimpleTriggerBean就不能满足我们的需求了,这个时候我们需要使用另外一个beanCronTriggerBean。一个简单的配置如下:

    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

        <property name="jobDetail">

            <ref bean="jobDetail"/>

        </property>

        <property name="cronExpression">

            <value>0 0 22 * * ? *</value>

        </property>

</bean>

这个配置指定了每天晚上10点执行我们的工作,使用CronTriggerbean我们可以精确的控制任务运行的时间,这个运行时间我们是通过cronExpression属性指定的,它是一个cron表达式,下面说一下这个表达式的语法。

一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:

代表含义

是否必须

允许的取值范围

允许的特殊符号

0-59

, - * /

分钟

0-59

, - * /

小时

0-23

, - * /

月份中的天数

1-31

, - * / ? L W C

月份

1-12JAN-DEC

, - * /

星期中的天数

1-7SUN-SAT

, - * / ? L #

empty1970-2099

, - * /

*:代表所有可取的值,比如说,如果分钟为*,那么就表示每一分钟;

?:只有月份中的天数和星期中的天数可以使用?来表示,因为“月份中的天数”和“星

  期中的天数”不能同时设值,所以我们可以通过?来表明不想设置的那个元素;

-:用来指定一个范围类的值,比如说,小时为”10-12”,它就表示10点、11点、12

,:逗号用来分隔一个元素的多个值,比如说“星期中的天数”为"MON,WED,FRI"

  它就表示周一、周三和周五。

/:斜杠用来表示间隔,比如说,秒数为5/10,那么它就表示第5秒、第15秒、第

  25秒、第35秒、第45秒和第55秒。斜杠前的数字表示起始位置,后面的数字表

  示每次增长的数量。

L:仅用在“月份中的天数”和“星期中的天数”元素中。如果是前者,它代表某月的

   最后一天;如果是后者,它就表示是周六。有一点特别的,当表示“星期中的天数”

   时,L可以和数字一起用,比如”6L”,它就表示这个月的最后一个星期五。

W:只能用来表示“月份中的天数”,和数字一起使用。比如说15W,它就表示离这

    个月15号最近的工作日。使用W时,“月份中的天数”必须为一个指定的日期,

    而不能是一个范围的日期。

#:只能用来表示“星期中的天数”。例如5#4,它表示某个月中第四个星期四,2#1

   表示某个月中第一个星期一。#前面的数字代表星期,后面的数字表示是第几个。

 

Spring调度任务cronjob 精确指定任务的运行时间

我们在调度一个工作的时候,如果设置每隔多长时间运行一次,使用的是SimpleTriggerBean,它的配置如下: 这里我们设置了每隔15分钟(1分钟是...

Spring调度任务cronjob 精确指定任务的运行时间

Spring调度任务cronjob 精确指定任务的运行时间

Spring调度任务cronjob 精确指定任务的运行时间

我们在调度一个工作的时候,如果设置每隔多长时间运行一次,使用的是SimpleTriggerBean,它的配置如下: [html] view plain copy    bean i...

Spring3 + Quartz1.6.2精确的任务调度,并注入service

Spring采用的是注解注入的方式

Spring 定时任务时间调度相关设置

1、在remoting-servlet.xml配置你自己需要定时的xml文件 如下 2、在customer_quartz.xml里面下对应的配置文件和定时的配置 ...

spring任务调度器quartz 时间配置

关于cronExpression表达式,这里讲解一下: 字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * /...

spring+quartz定时器任务调度(时间配置比timer灵活的多)

spring 触发器(调度器):  1,定义一个定时器实现 org.quartz.Job 接口,实现execut()方法;  2,在配置文件中配置定时器 bean      配置触发器,在触发...
  • PZ0605
  • PZ0605
  • 2014年11月20日 10:57
  • 1267

Spring中的时间调度,定时任务

一 简单的线程方式周期执行        所谓线程式就是规定了和thread类似的timer类每隔一段时间(自己在配置文件中定义的时间)run方法就会被执行一次,所以他是一个单线程类首先需要了解...

学习《spring 3.x企业应用开发实战》之任务调度和异步执行器

1、Quartz快速进阶 Quartz允许开发人员灵活地定义触发器的调度时间表,并可对触发器和任务进行关联映射。此外,Quartz提供了调度运行环境的持久化机制,可以保存并恢复调度现场,即使系统因故障...

Quartz任务调度框架学习四(Quartz集成Spring及在项目中的应用)

Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring学习:Spring调度任务--精确指定任务的运行时间
举报原因:
原因补充:

(最多只允许输入30个字)