Cron-Expressions被用于配置CronTrigger实例。Cron-Expressions是生龙活虎串字符串。由四个部分组成,用来详细描述时间调解。各样部分内容用空格分开,各部分代表如下: style="font-family: 'Microsoft YaHei'; font-size: 16px;">Second..." />

Quartz 第六课 CronTrigger(官方文档翻译)

Cron Expressions

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>Cron-Expressions被用于配置CronTrigger实例。Cron-Expressions是生龙活虎串字符串。由四个部分组成,用来详细描述时间调解。各样部分内容用空格分开,各部分代表如下:

  1. style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>Seconds
  2. style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>Minutes
  3. style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>Hours
  4. style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>Day-of-Month
  5. style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>Month
  6. style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>Day-of-Week
  7. style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>Year
    (optional field

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>用一个简易的事例表明:“0
    0 12 ? * WED”。这段字符串表达的情趣是每一个星期生机勃勃的12:00.

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>个其他sub-expressions可以分包叁个限量整合。举例:day
    of week
    字段,在后面包车型地铁事例中得以写成“MON-F酷威I”,“MON,WED,FTiggoI”恐怕是“MON,WED,SAT”。

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>各部分使用通配符来表示这么些字段全体的或是值意思不问可见在Month字段上象征具有月份,在day
    of week表示各种周的具有天数。

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>各类字段皆有和好的值限制。这个限定值得范围是一定醒目-在分钟和秒的字段上节制是0-59。在Hours字段上约束为0-23。在day
    of month
    字段上限定是0-31可是这亟需凭借现实的月度来测算。Month的有效值为0-11.。当然也足以使用JAN,
    FEB, MA奥迪Q7, AP奥迪Q7, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC。day of week
    有效限定是1-7(表示礼拜六)也足以选用SUN, MON, TUE, WED, THU, FSportageI and
    SAT.表示。

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>‘/’用来表示贰个不一致通常的加强区间。比如在Minutes字段上写入0/15,表示的意思是每15进行,在0秒钟的时候运维。借使写的3/20则意味每20分钟实施一次,在3分钟钟后开发银行,其专业的年月是3,23,43.

    澳门太阳集团城网址,style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>‘?’能够用在 day-of-month
    and
    day-of-week字段上面。用来代表还未有切实可行值得意思。如若您要求在此多个字段做一些独辟蹊径的操作这一个标志是这一个实用的,实际情况请看CronTrigger
    API documentation。

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

    澳门太陽城集团登录网址,style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>‘L’容许用在day-of-month
    and
    day-of-week 字段上边。那些字符在五个字段上面表示的情趣不太相仿。举例:在day-of-month上象征是以此月的结尾的一天。要是利用在day-of-week代表的7(SAT)。假设在L前边带有别的具体值,则象征有些月的最终的某一天。举个例子6L要么F凯雷德IL表示的是下一个月的最后一个星期5.当你使用L的时候,你必要通晓它不会内定三个不拘一格的现实指也许三个范围,而是三个不显明的值。

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>‘W’表示的是最相通给定天的专门的职业日(星期三到星期二)。比方你写是15W在day-of-month则表示最周围下一个月15的专门的学业日。

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>“#”被用来钦赐前段日子的“第n”XXX工作日。比方,设置值“6#3”恐怕“F英菲尼迪Q60I#3”在day-of-week,则意味上月的第八个星期一”。

Example Cron Expressions

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>上边给出一些切实表明式例子,更具体的牵线见the
API documentation for CronTrigger。

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>1、每五秒钟执行一遍

“0
0/5 * *Quartz 第六课 CronTrigger(官方文档翻译)。 * ?”

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>2、每五分钟施行一次,十秒等待

“10
0/5 *Quartz 第六课 CronTrigger(官方文档翻译)。 *Quartz 第六课 CronTrigger(官方文档翻译)。 *Quartz 第六课 CronTrigger(官方文档翻译)。 ?”   10:00:10  10:05:10

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>3、周周意气风发和星期一的10:30
11:30 12:30 13:30举行三回

“0 30
10-13 ? * WED,FRI”

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>4、每月的5号与20号的8-9点之间每30分钟实行三遍

“0
0/30 8-9 5,20 * ?”

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>注意:有个别触发机制过于复杂,举例每五分钟奉行三回在每月的8-9点,并且在13至22点没20秒钟施行一回,对于那样的接触记住,能够装件三个独立的触发器来专门的工作相近的情节。

 

CronTrigger Misfire Instructions

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>上面的是CronTrigger
MisFire(战败之后试行的计划)。详细情况见 API documentation

  • style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>MisfireInstruction.IgnoreMisfirePolicy
  • style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>MisfireInstruction.CronTrigger.DoNothing
  • style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>MisfireInstruction.CronTrigger.FireOnceNow

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>全部触发器有可应用的MisfireInstrution.斯马特Policy指令,並且该指令也是颇负触发类型的暗中认可。在“明智的安排”指令被CronTrigger解释为MisfireInstruction.CronTrigger.FireOnceNow。对于CronTrigger.UpdateAfterMisfire()方法的API文书档案解释了这种行为的求实细节。

    style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>当创设CronTriggers,您内定的misfire 作为cron的布置的后生可畏都部队分(通过WithCronSchedule扩张方法):

    1 trigger = TriggerBuilder.Create()
    2 .WithIdentity(“trigger3”, “group1”)
    3 .WithCronSchedule(“0 0/2 8-17 ?”, x => x
    4 .WithMisfireHandlingInstructionFireAndProceed())
    5 .ForJob(“myJob”, “group1”)
    6 .Build();

 

 

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>CronTriggers使用的成效比SimpleTrigger跟高。即便要求schedule 中触发Job的点子临近于日历的款式并非一个鲜明的是岁月距离,那就供给使用CronTrigger。

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>对于CronTrigger,你能够触发Schedule,举个例子各类星期五清晨依然各类专门的学业日的晚上9:30要么在傍晚9:00至10:;之间每五分钟推行叁遍在每种周后生可畏、星期五、星期五试行。

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”> 

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>不紧如此,SampleTrigger和CronTriggerd都有三个开发银行时间和一个可选的终止时间来终止。

Building CronTriggers

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>构建CronTrigger具体实例,使用的是TriggerBuilder (用来安排Trigger主要的内容)和WithCronSchedule(用来安顿Trigger的特种供给内容) 扩大方法。

 

style=”font-size: 16px;”>1、创设二个天天的8-17点之间每两分钟推行二遍

1 trigger = TriggerBuilder.Create()
2     .WithIdentity("trigger3", "group1")
3     .WithCronSchedule("0 0/2 8-17 * * ?")
4     .ForJob("myJob", "group1")
5     .Build();

2、塑造二个每一日10:42举办二次

1 // we use CronScheduleBuilder's static helper methods here
2 trigger = TriggerBuilder.Create()
3     .WithIdentity("trigger3", "group1")
4     .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(10, 42))
5     .ForJob(myJobKey)
6     .Build();

或者

1 trigger = TriggerBuilder.Create()
2     .WithIdentity("trigger3", "group1")
3     .WithCronSchedule("0 42 10 * * ?")
4     .ForJob("myJob", "group1")
5     .Build();

style=”font-size: 16px;”>3、创设一个每个周四的10:42,使用非系统暗中认可的时区

1 trigger = TriggerBuilder.Create()
2     .WithIdentity("trigger3", "group1")
3     .WithSchedule(CronScheduleBuilder
4         .WeeklyOnDayAndHourAndMinute(DayOfWeek.Wednesday, 10, 42)
5         .InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Central America Standard Time")))
6     .ForJob(myJobKey)
7     .Build();

或者

1 trigger = TriggerBuilder.Create()
2     .WithIdentity("trigger3", "group1")
3     .WithCronSchedule("0 42 10 ? * WED", x => x
4         .InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Central America Standard Time")))
5     .ForJob(myJobKey)
6     .Build();

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图