`
hfbrook
  • 浏览: 37118 次
社区版块
存档分类
最新评论

Quartz的cron 表达式,每隔两周的周一和周三怎么表示?

阅读更多
我使用spring + quartz 做定时任务处理,想实现每隔二个星期的周一和周三触发任务,这样一个cron 表达式怎么写?
分享到:
评论
17 楼 wu2004 2008-10-22  
怎么没有一个完整的答案?
16 楼 rrooyy 2008-08-08  
CRON表达式 配合 Calendar日历就可以实现你需要的功能。
即通过CRON指定每周一、三执行,然后使用一个隔周有效的日历。Quartz是有这个功能的。
15 楼 cwx714 2008-03-10  
0 0 0 * * 2,4/2
我一直是这样写的。
14 楼 pf_miles 2008-03-05  
直接crontab搞定了吧?
0 0 * * 1,3/2 cmd
13 楼 过无双 2008-03-05  
楼主的需求 我没有想出来
可能cron不大适合这样的情况

不过我觉得 既然是固定间隔(两周)
使用Quartz的SimpleTrigger就可以了吧

何必用cron呢

12 楼 hfbrook 2008-03-04  
jycode 写道
hfbrook 写道
lggege 写道
jycode 写道
0 0 0 0 0 2/2,4/2


我不清楚在第六位的Day-of-Week是否可以用数字.如果可以,那上面的就是正解.

0 0 0 0 0 MON/2,WED/2

在day_of_week中用 /2表示的是每隔二天而不是每隔2周,楼上所说的不行

若真是如此, 改成14就是2周了,何必太拘泥.
另,week这个位置是可以用数字的,1表示sun,类推.
不过我的确没有实作进行测试,对不起.


这样是不行的,我测试过,可能是这里的值不能超过7
11 楼 ddandyy 2008-03-04  
引用
Day-of-Week    1-7 or SUN-SAT    , - * ? / L C #

可以用14??????????
10 楼 jycode 2008-03-04  
hfbrook 写道
lggege 写道
jycode 写道
0 0 0 0 0 2/2,4/2


我不清楚在第六位的Day-of-Week是否可以用数字.如果可以,那上面的就是正解.

0 0 0 0 0 MON/2,WED/2

在day_of_week中用 /2表示的是每隔二天而不是每隔2周,楼上所说的不行

若真是如此, 改成14就是2周了,何必太拘泥.
另,week这个位置是可以用数字的,1表示sun,类推.
不过我的确没有实作进行测试,对不起.
9 楼 hfbrook 2008-03-03  
agile_boy 写道
0 0 0 0 0 2#1,2#3,4#1,4#3

这样如何?未验证



#表示的是一个月份内的第几个星期,而我要求的是年度范围内的,就是一年52周,每几周的周几运行。
我现在用JobListener和 InInterruptableJob接口去实现,在listener 中判断当前时间的 week_of_year(一年内的第几个星期) 能否被 interval(星期的间隔) 整除,如果不能整除就跳过这次的job执行。
8 楼 agile_boy 2008-03-03  
0 0 0 0 0 2#1,2#3,4#1,4#3

这样如何?未验证
7 楼 lggege 2008-03-03  
ddandyy 写道
好像没办法指定隔多长时间呢.......
除非用那种隔多少秒启动的定义方式  这样就需要写两个 每隔3*7*24*3600*1000就执行
或者写一个 每个星期2和3都会运行的  然后在数据库里记录上次启动时间 如果是两个星期就启动  否则就不启动 当然数据库里要记录两个时间 分别对应周二和周三


看来只能这样了.

每周1,3执行. 执行前判断上次执行是否有两个星期间隔了.
6 楼 hfbrook 2008-03-03  
lggege 写道
jycode 写道
0 0 0 0 0 2/2,4/2


我不清楚在第六位的Day-of-Week是否可以用数字.如果可以,那上面的就是正解.

0 0 0 0 0 MON/2,WED/2

在day_of_week中用 /2表示的是每隔二天而不是每隔2周,楼上所说的不行
5 楼 lggege 2008-03-03  
jycode 写道
0 0 0 0 0 2/2,4/2


我不清楚在第六位的Day-of-Week是否可以用数字.如果可以,那上面的就是正解.

0 0 0 0 0 MON/2,WED/2
4 楼 jycode 2008-03-03  
0 0 0 0 0 2/2,4/2
3 楼 hfbrook 2008-03-03  
谢谢各位的回复,好象用cron表达式是没有办法解决这个问题,不过我想用 JobListener应该可以实现这个功能.
2 楼 ddandyy 2008-03-03  
好像没办法指定隔多长时间呢.......
除非用那种隔多少秒启动的定义方式  这样就需要写两个 每隔3*7*24*3600*1000就执行
或者写一个 每个星期2和3都会运行的  然后在数据库里记录上次启动时间 如果是两个星期就启动  否则就不启动 当然数据库里要记录两个时间 分别对应周二和周三
1 楼 抛出异常的爱 2008-03-03  
写四个任务?

相关推荐

    Quartz的Cron表达式

    ### Quartz的Cron表达式详解 #### 一、Cron表达式概述 Cron表达式是一种用于配置定时任务执行频率的格式化字符串。在Quartz调度器中,CronTrigger类型的触发器支持Cron表达式来定义触发规则。Cron表达式由六个或七...

    quartz表达式生成工具

    .dayOfWeek().monday().wednesday() // 周一和周三 .year().fromNow().to(2025); // 从现在到2025年 String cronExpression = cronBuilder.build(); ``` 在实际应用中,我们可以根据需求利用CronExpBuilder来...

    Quartzcron表达式.pdf

    - 逗号(,):用于列出多个值,例如MON,WED,FRI表示周一、周三和周五。 - 斜杠(/):用于定义等差序列,如0/15在分钟字段表示0、15、30、45秒。 - L:在日期字段中表示当月最后一天,在星期字段中代表周六(等同于7)。...

    Spring线程时间配置:Quartz和CronExpression

    - **逗号(,)**: 用来分隔多个值,例如“MON,WED,FRI”表示周一、周三和周五。 - **斜杠(/)**: 用来指定步长,例如“0/15”表示每15分钟,而“5/15”则表示5分钟、20分钟、35分钟、50分钟。 - **L**: 用来指定...

    Quartz之CronExpression详解

    - **含义**:“*”表示每秒,`"/15"` 表示每隔15秒。 2. **分 (Minutes)** - **允许的值**:0-59 - **允许的特殊字符**:与秒字段相同。 - **含义**:“*”表示每分钟。 3. **小时 (Hours)** - **允许的值*...

    quarz 定时任务配置手册

    例如,“MON,WED,FRI”表示周一、周三和周五。 5. **斜杠(/)**:用于指定增量。例如,“0/15”在“秒”字段中表示每隔15秒。 6. **L**:代表“last”,在“月份中的哪一天”和“一周中的哪一天”字段中表示最后一...

    JAVA 定時服務配置&學習

    - **,**:用于指定多个值,如`MON,WED,FRI`表示"周一、周三和周五"。 - **/**:增量,如`0/15`在"秒"字段中表示"第0,15,30,45秒",`5/15`表示"第5,20,35,50秒",`* / 5`表示"每5分钟"。 - **L**:在"日"字段中表示...

    quartz学习文档

    - `,` 用于列出多个值,如`MON,WED,FRI`在周字段表示周一、周三和周五。 - `?` 用于表示不关心该字段的值,如在月份中的日期字段。 - `L` 代表“last”,在日字段表示当月最后一天,在周字段表示周六。 - `W` 表示离...

    Quartz CronTrigger配置说明

    例如,在星期字段上设置 `MON,WED,FRI` 表示在周一、周三和周五触发。 5. **斜杠 `/`**: 用于指定递增触发。例如,在秒字段上设置 `5/15`,表示从 5 秒开始,每隔 15 秒触发一次。 6. **大写字母 `L`**: 用于表示...

    quartz中cronExpression 配置资源

    - `,`:列举,如"MON,WED,FRI"表示周一、周三和周五。 - `/`:步进值,如"0/15"表示每隔15秒触发。 例如: - `"0 0 12 * * ?"`:每天中午12点触发。 - `"0 15 10 ? * *"`:每天上午10:15触发。 - `"0 15 10 * * ? ...

    spring定时器时间配置

    如“周几”字段中的“MON,WED,FRI”表示“周一、周三、周五”。 5. **“/”** —— 步进值。例如,“秒”字段中的“0/15”表示“第0,15,30,45秒”。若“/”前加上“*”,则从0开始计步。 6. **“L”** —— “last”...

    quartz文档

    SimpleTrigger适用于触发一次或以固定时间间隔周期执行的任务,而CronTrigger则适用于需要通过Cron表达式定义各种复杂时间规则的调度方案,如每周一上午10:00执行,周一、周三、周五下午5:00执行等。 Quartz还提供...

Global site tag (gtag.js) - Google Analytics