,,Java Quartz触发器CronTriggerBean配置用法详解

,,Java Quartz触发器CronTriggerBean配置用法详解

本文主要介绍Java Quartz触发器CronTriggerBean的配置和使用。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容,有需要的朋友可以参考一下。

CronTrigger表达式分为七个子表达式,每个子表达式之间用空格隔开,从左到右依次为:秒、分、小时、月中日、月、星期几、年;年份不是必须的,也就是说任何一个表达式至少需要六项!

示例:0 0 12?* WED是指每周三12点。这里没有“年”!

字段名(项目)必须是具有值范围的特殊字符。

第二个是0-59,-*/

比分是0-59,-*/

时间是0-23,-*/

一个月中的第几天是1-31,-*?/L W

月份是1-12或1-12月,-*/

星期几是1-7还是周六,-*?/L #

无空,1970-2099,-*/

先看列表:' 0 0/30 8-10 5,20 *?'意思是“每月5日、20日的8点、8点30分、9点、9点30分、10点、10点30分”

字符解释:

、和,表达式','两边的值是要执行的时间,比如上面例子中的' 5,20 ',每个月的5号和20号。

-:表示值的范围,如上面示例中的“8-10”,从8点钟到10点钟,包括8点钟和10点钟。

*:表中的任何合法值。例如,' * '是月份中的一个字段,所以它代表1到12之间的任何值,所以上面的例子指的是“每个月”。

/:增量。在上面的例子中,它意味着从0开始每30分钟取一次值。如果更改为“5/8”,则从第5分钟开始每8分钟取一次值:8:05、8:13、8:21、8:29等等。

?如果不指定值,则表示“我也不知道”。它只能出现在项目“一个月中的某一天,一周中的某一天”中。在什么情况下使用?比如指定的值是星期一,可能会出现,比如4月5日不是星期一,所以这里没有对应和冲突,所以指定为'?'也就是说,我不知道今天是什么日子,只要是5号20号,我不在乎今天是什么日子!

L: last,最后的意思,只能出现在“一个月的某一天,一周的某一天”这一项中。指示当前月或周的最后一天。请注意,一周的最后一天是星期六。

w:最接近指定日期的当月普通日(周一至周五)只能出现在“当月某日”,如‘15W’,表示最接近当月15日的普通日。如果当月15日是周三,则为昨天或周五,如果当月15日是周日,则为次日或周一。

#:当前月的第n周x天只能出现在“星期几”项中。例如,“6#3”表示当月的第三个星期五。注意‘1-7’,1=周日,2=周一等等。

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

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

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

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

'0 15 10 * * ?在2005年的每天上午10:15触发。

'0 * 14 * * ?'每天下午2点到2点59分之间每分钟触发一次。

'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分之间每分钟触发一次。

'0 10,44 14 ?“Wed”在每年三月的星期三下午2:10和2:44触发。

'0 15 10 ?*周一至周五在上午10:15触发

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

0 15 10升*?'在每月最后一天的上午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触发

每5秒:*/5 * * * *?

每1分钟:0 */1 * * *?

每天23点:0 0 23 * *?

每天早上1: 00: 01 * *?

它在每月1日凌晨1: 00执行:0 0 1 *?

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

每周日凌晨1点:0 0 1?* L

实现应用:

包com.test.util

公共课程计划任务{

私企站道道;

受保护的最终记录器日志=记录器。get Logger(getClass());

public void setDao(IStationDao Dao){

this.dao=道

}

/**

*工作

*/

公共void JobUnlockTicket

长L1=系统。当前时间毫秒();

MapString,Integer map=new HashMapString,Integer();

map.put('UserId ',sys参数。get UserId());

尝试{

道JobUnlockTicket(地图);

} catch(异常e) {

日志。error(' jobunlocktail:' e . getmessage());

}

日志。info(' jobunlocktail:'(系统。当前时间米利()-L1));

}

}

!-工作-

bean id=' job _ unlock ' class=' com。测试。util。'计划任务'

属性名称='道' ref='站道'/属性

/bean

bean id=' job detail _ unlock ' class=' org。spring框架。日程安排。石英。methodinvokingjobdetailfactorybean

property name=' target object ' ref=' job _ unlock '/

属性名称='targetMethod '值=' JobUnlockTicket

属性名='并发'值='false' /

!-是否允许任务并发执行。当值为错误的时,表示必须等到前一个线程处理完毕后才再启一个新的线程-

/bean

!-配置触发器-

bean id=' cron trigger ' class=' org。spring框架。日程安排。石英。克朗特里格宾

属性名称='作业详细信息' ref='作业详细信息_解锁'/

属性名='cronExpression '

值0 0/5 * * *?/值!-每五分钟执行一次-

/属性

/bean

!- lazy-init='false '是否延迟加载-

bean id=' jobs ' lazy-init=' false ' class=' org。spring框架。日程安排。石英。schedulerfactorybean

属性名称='startupDelay '值='60' /!-雄猫启动后60秒,开始启动调度-

属性名='触发器'

目录

ref local='cronTrigger' /

/列表

/属性

/bean

到此这篇关于爪哇石英触发器克朗特里格宾配置用法详解的文章就介绍到这了,更多相关爪哇石英触发器克朗特里格宾配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: