Quartz Cron表达式:从现在开始每10分钟运行一次作业(立即)

Quartz Cron表达式:从现在开始每10分钟运行一次作业(立即),cron,Cron,我使用的是使用Spring的石英调度器。我希望使用以下计划配置相同的配置: 从现在开始,每10分钟运行一次作业 我使用下面的表达式来表示相同的内容 0 */10 * * * ? 我以为*在分钟字段中会使它在第一分钟运行,但它不是这样做的。它从现在开始运行前10分钟,然后每隔10分钟运行一次。 有人能告诉我这种行为的原因以及我的问题的解决方案吗?现在检查你的分钟数,并将它们作为列表添加到你的crontrigger中。例如,如果您在第12分钟启动触发器,则添加 0 2,12,22,32,42,52

我使用的是使用Spring的石英调度器。我希望使用以下计划配置相同的配置:

从现在开始,每10分钟运行一次作业

我使用下面的表达式来表示相同的内容

0 */10 * * * ?
我以为*在分钟字段中会使它在第一分钟运行,但它不是这样做的。它从现在开始运行前10分钟,然后每隔10分钟运行一次。
有人能告诉我这种行为的原因以及我的问题的解决方案吗?

现在检查你的分钟数,并将它们作为列表添加到你的crontrigger中。例如,如果您在第12分钟启动触发器,则添加

0 2,12,22,32,42,52 * * * ? 
作为您的cron表达式

编辑:

另一个解决方案是定义一个每十分钟重复一次的simpletrigger

SimpleTrigger trigger = new SimpleTrigger("myTrigger",
                                            null,
                                            new Date(),
                                            null,
                                            SimpleTrigger.REPEAT_INDEFINITELY,
                                            10L * 60L * 1000L);

你可以用像

0 1-59/10 * * * ?
这将在任何一分钟和10分钟后触发作业。我没有试过,但看起来不错。:)

请参阅:


从创建cron作业的那一刻起,每10分钟一次,无论您喜欢哪种(用户crontab,
/etc/cron.d/
,…)。

谢谢,这样做会奏效,但这不是很明智,不是吗。我正在开发一个巨大的应用程序,启动时需要启动CronJob。我不想每次启动应用程序时都更改cron表达式。我们有其他解决方案吗?我担心智能版本无法通过spring配置。您可以在方法之前添加@PostContract,因此在初始化bean后,它将第一次运行。在quartz中,cron可以每秒运行一次。您的解决方案将以quartz cron调度语法每10秒运行一次。当我有一个每分钟都要运行的作业时,这让我大吃一惊,所以我使用了gnu的cron语法(如上所述),实际上它每分钟都在运行。啊。。。。。谈论并发测试……你节省了时间。
0 0/10 * 1/1 * ? *
*/10 * * * *