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

n8ye

贡献于2013-10-17

字数:1595 关键词: Quartz 作业调度框架

我们在调度一个工作的时候,如果设置每隔多长时间运行一次,使用的是SimpleTriggerBean,它的配置如下: [html]view plaincopy 1 2 3 4 5 这里我们设置了每隔15分钟(1分钟是60000)执行一次我们创建的工作。SimpleTriggerBean只能让我们指定工作执行的频率,不能让我们指定工作执行的具体时间。比方说,我们要求在每天的晚上10点执行某个具体的工作,那么SimpleTriggerBean就不能满足我们的需求了,这个时候我们需要使用另外一个bean:CronTriggerBean。一个简单的配置如下: [html]view plaincopy 6 7 8 9 lt;/bean> 这个配置指定了每天晚上10点执行我们的工作,使用CronTriggerbean我们可以精确的控制任务运行的时间,这个运行时间我们是通过cronExpression属性指定的,它是一个cron表达式,下面说一下这个表达式的语法。 一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示: 代表含义 是否必须 允许的取值范围 允许的特殊符号 秒 是 0-59 , - * / 分钟 是 0-59 , - * / 小时 是 0-23 , - * / 月份中的天数 是 1-31 , - * / ? L W C 月份 是 1-12或JAN-DEC , - * / 星期中的天数 是 1-7或SUN-SAT , - * / ? L # 年 否 empty,1970-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 表示某个月中第一个星期一。#前面的数字代表星期,后面的数字表示是第几个。

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档