对于给定的 cron 表达式,Seam Quartz Dispatcher 不会在秒和分钟字段上触发
Seam Quartz Dispatcher not firing on seconds and minutes field for a given cron expression
我有一个 Quartz 作业会重复触发一段时间。不幸的是,由于某些未知原因,它没有触发。
这是我的 cron 表达式:
0/5 0 0 * * ?
所以基本上作业应该每 5 秒触发一次。这是不起作用的部分。
现在奇怪的是我将 cron 表达式更改为
0 0 0/1 * * ?
每 1 小时触发一次作业。作业已解雇,我可以看到正在 Java 端调用该方法。
我也在分钟字段上尝试过,例如。 0 0/5 0 * * ?
每 5 分钟一次,但它也不触发。
我不知道其他两个表情没有触发是什么行为。任何帮助将不胜感激。
这也是我的seam.quartz.properties文件
Configure Main Scheduler Properties
org.quartz.scheduler.instanceName QuartzScheduler
org.quartz.scheduler.instanceId AUTO
org.quartz.scheduler.rmi.export false
org.quartz.scheduler.rmi.proxy false
Configure ThreadPool
org.quartz.threadPool.class org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount 10
Configure JobStore
org.quartz.jobStore.misfireThreshold 60000
org.quartz.jobStore.class org.quartz.simpl.RAMJobStore
我正在使用 Jboss 5.1.0、Seam 2.2 和 Quartz 1.8.3。
0/5 0 0 * * ?
上面的 cron 表达式将安排作业在 分钟 0
和 小时 [=12] 期间每 5 秒触发一次=] 每天。也就是说,每天第一分钟,job会执行12次。
我假设您希望它在任何时间触发,即每 5 秒触发一次,与时间无关。
将表示 分钟 和 小时 的两个零替换为 *
通配符。此外,您不需要 ?
,这意味着 没有特定值 。下面的表达式将每 5 秒安排一次计时器,不管它是小时还是分钟:
0/5 * * * * *
之所以 0 0 0/1 * * ?
是 "working" 是因为你正确理解了表达式,而你没有理解 "not working" 的表达式。基本上这意味着在新的一小时开始时每隔 1 小时(第 0 分钟和第 0 秒).
此文档是一个很好的资源,其中包含 Quartz 示例 1.X:
http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger
我有一个 Quartz 作业会重复触发一段时间。不幸的是,由于某些未知原因,它没有触发。
这是我的 cron 表达式:
0/5 0 0 * * ?
所以基本上作业应该每 5 秒触发一次。这是不起作用的部分。
现在奇怪的是我将 cron 表达式更改为
0 0 0/1 * * ?
每 1 小时触发一次作业。作业已解雇,我可以看到正在 Java 端调用该方法。
我也在分钟字段上尝试过,例如。 0 0/5 0 * * ?
每 5 分钟一次,但它也不触发。
我不知道其他两个表情没有触发是什么行为。任何帮助将不胜感激。
这也是我的seam.quartz.properties文件
Configure Main Scheduler Properties
org.quartz.scheduler.instanceName QuartzScheduler
org.quartz.scheduler.instanceId AUTO
org.quartz.scheduler.rmi.export false
org.quartz.scheduler.rmi.proxy false
Configure ThreadPool
org.quartz.threadPool.class org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount 10
Configure JobStore
org.quartz.jobStore.misfireThreshold 60000
org.quartz.jobStore.class org.quartz.simpl.RAMJobStore
我正在使用 Jboss 5.1.0、Seam 2.2 和 Quartz 1.8.3。
0/5 0 0 * * ?
上面的 cron 表达式将安排作业在 分钟 0
和 小时 [=12] 期间每 5 秒触发一次=] 每天。也就是说,每天第一分钟,job会执行12次。
我假设您希望它在任何时间触发,即每 5 秒触发一次,与时间无关。
将表示 分钟 和 小时 的两个零替换为 *
通配符。此外,您不需要 ?
,这意味着 没有特定值 。下面的表达式将每 5 秒安排一次计时器,不管它是小时还是分钟:
0/5 * * * * *
之所以 0 0 0/1 * * ?
是 "working" 是因为你正确理解了表达式,而你没有理解 "not working" 的表达式。基本上这意味着在新的一小时开始时每隔 1 小时(第 0 分钟和第 0 秒).
此文档是一个很好的资源,其中包含 Quartz 示例 1.X:
http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger