需要写一个调度CronExpression需要从早上8点半开始到17点半每半小时执行一次

haoztao 2012-05-17 02:17:53
需要写一个调度CronExpression需要从早上8点半开始到17点半每半小时执行一次,我这样写的
CronExpression cexp = new CronExpression("0 0/30 8-17 * * ?");
现在的问题是8点都执行了。。。不能从半点开始。。。。
各位大侠帮帮忙。。。
...全文
1276 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
实在不行,分2个来做吧,一个0分启动,一个30分启动,即
CronExpression cexp1 = new CronExpression("0 30 8-17 * * ?");
CronExpression cexp2 = new CronExpression("0 0 9-17 * * ?");
[/Quote]

赞成,这个看起来应该是实现代价最低了。
qybao 2012-05-18
  • 打赏
  • 举报
回复
恩,整点有可能会被废掉,需要测试,不知道有没有优先组合
比如
CronExpression cexp1 = new CronExpression("0 30,0 8-17 * * ?");
先优先组合30分,再组合0分,LZ可以测试一下

实在不行,分2个来做吧,一个0分启动,一个30分启动,即
CronExpression cexp1 = new CronExpression("0 30 8-17 * * ?");
CronExpression cexp2 = new CronExpression("0 0 9-17 * * ?");
MiceRice 2012-05-18
  • 打赏
  • 举报
回复
这个需要测试下,我依稀记得似乎会把 9:00/10:00 这类的给废了,不过搭环境测试比较费时。

楼主,为了测试简单起见,建议先改成秒和分来测试稍微好点。
qybao 2012-05-18
  • 打赏
  • 举报
回复
每注意看,是从8点半开始啊
have a try
CronExpression cexp1 = new CronExpression("0 30/30 8-17 * * ?");
kunlunningxue 2012-05-18
  • 打赏
  • 举报
回复
"0 0/30 8-18 * * ?" 这样貌似可以的把,在代码里写上如果等于8点或者是18点就不执行业务代码也ok吧
MiceRice 2012-05-17
  • 打赏
  • 举报
回复
这哥们问题的主要难点在于:8点半开始,17点半结束。这两个“半”算是要了老命了。

所以无法有效将 8:00 和 17:30 从表达式范围中排除掉。

另一种方案就是在任务代码里面判断下,如果是8:00就不执行实际操作。
qybao 2012-05-17
  • 打赏
  • 举报
回复
have a try
CronExpression cexp = new CronExpression("0 0-59/30 8-17 * * ?");

分钟位置的设置,0-59/30 表示分钟间隔30分钟,即每30分钟执行一次
fanyuanwaifdl 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你的要求,直接用一条Cron表达式应该做不到。

需要换一种思路,用三个Cron表达式:
A、负责在8点15分,将C表达式任务启用;
B、负责17点45分,将C表达式任务禁用。
C、每半个小时执行一次任务。
[/Quote]饿
MiceRice 2012-05-17
  • 打赏
  • 举报
回复
你的要求,直接用一条Cron表达式应该做不到。

需要换一种思路,用三个Cron表达式:
A、负责在8点15分,将C表达式任务启用;
B、负责17点45分,将C表达式任务禁用。
C、每半个小时执行一次任务。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧