我正在使用Quartz Scheduling API for Java。你能帮我用cron-expression每25秒运行一次吗?这只是一个延迟。它不必始终在第二个0开始。例如,序列是这样的:0:00,0:25,0:50,1:15,1:40,2:05等等到第5分钟时序列在第二个0开始。 谢谢。
答案 0 :(得分:15)
我不认为cron表达式会允许你这样做,但你可以使用
SimpleScheduleBuilder.repeatSecondlyForever( 25 )
因为300(5分钟)是25的倍数,它会自动重复。
答案 1 :(得分:9)
如果您希望定期触发作业,则可以使用指定了SimpleTrigger
的Quartz repeatInterval
。
答案 2 :(得分:8)
使用 Quartz 2.1.5 ,这将有所帮助:
LVM_INSERTITEM
答案 3 :(得分:6)
使用cron触发器执行此操作的唯一方法是如此复杂以至于无用;你从其他答案中使用SimpleTrigger会好得多。然而,如果必须是cron,则需要设置五个不同的cron触发器:
0/25 0/5 * * * *
15/25 1/5 * * * *
5/25 2/5 * * * *
20/25 3/5 * * * *
10/25 4/5 * * * *
第一个触发器在0:00:25,0:00:50触发;然后第二个触发器在0:01:15和0:01:40触发;第三次是0:02:05,0:02:30,0:02:55;第四次是0:03:20,0:03:45;最后是0:04:10和0:04:35的第五个。然后第一个触发器在0:05:00再次接管,等等。
这只能起作用,因为25秒均匀分为5分钟(而后者均匀分成一小时)。如果你想要每 23 秒?算了吧!
答案 4 :(得分:3)
*/25 * * * * *
- [wiki] http://en.wikipedia.org/wiki/Cron
- [quartz tutorial] http://www.quartz-scheduler.org/docs/tutorial/TutorialLesson06.html
答案 5 :(得分:0)
对于石英,你不能有这样的时间表。
您可以做的一件事是安排一个包装器作业每5秒运行一次,并且每五次执行只执行任何工作。
答案 6 :(得分:0)
您可以安排作业持续运行,但使用Camel的Throttler限制频率。
<route>
<from uri="jms:queue:TestQueue"/>
<!-- throttle 1 messages per 25 sec -->
<throttle timePeriodMillis="25000">
<constant>1</constant>
<to uri="bean:TestBean?method=testMethod"/>
</throttle>
</route>