2010-06-08 85 views
3

我希望我的作业每X秒执行一次,作业和X之间也有一对一的匹配。另外,在运行期间,可以用自己的时间间隔注册新作业。什么是相应的Cron表达式在每X秒内触发,其中X> 60?

我试过为这样的场景编写cron表达式,但是在文档中写到seconds的值不能超过59.所以像这样的cron表达式:“0/63 * * * *?”无效。乍一看这个问题的解决方案似乎是这样的表达:“0/3 0/1 * * *?”,但它意味着完全不同的事情:在每分钟的每三秒钟触发一次工作。

你能提出什么是正确的解决方案(cron表达式)吗?我知道我可以使用简单的定时器,但我必须使用Quartz使用cron作业。

回答

6

Quartz cron语法旨在表示基于标准24小时60分钟时钟的计时。它不适用于“每n秒”,其中n可以是任何值。你不能用cron表达式来做到这一点。

如果您需要使用Quartz来做到这一点,您应该使用SimpleTrigger而不是CronTrigger。除非你想使用一个庞大而复杂的重叠的人为推导的cron表达式,否则你并没有真正的选择。

+0

谢谢,我不知道Quartz有SimpleTrigger。 – giolekva 2010-06-08 10:36:56