30分钟后每进行一次春季凝血

2022-08-31 11:05:17

我有以下春季工作,每30分钟运行一次。请检查我的cron表达式,这是正确的吗?

0 0 0 * * 30

以下是来自相关Spring配置文件的完整cron作业定义:

<bean id="autoWeblogPingTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="jobDetailForWeblogPing"/>
    <!-- run every 35 minutes -->
    <property name="cronExpression" value="0 0 0 * * 30" />
</bean>

答案 1

根据Quartz-Scheduler教程,它应该是value="0 0/30 * * * ?"

cronExpression 的场序为

  1. 纪要
  2. 小时
  3. 每月的某一天
  4. 星期几
  5. 年份(可选字段)

确保您至少有 6 个参数,否则将出现错误(年份是可选的)。


答案 2

从图形上看,Quarz 的 cron 语法是():

+-------------------- second (0 - 59)
|  +----------------- minute (0 - 59)
|  |  +-------------- hour (0 - 23)
|  |  |  +----------- day of month (1 - 31)
|  |  |  |  +-------- month (1 - 12)
|  |  |  |  |  +----- day of week (0 - 6) (Sunday=0 or 7)
|  |  |  |  |  |  +-- year [optional]
|  |  |  |  |  |  |
*  *  *  *  *  *  * command to be executed 

因此,如果您想每30分钟运行一次命令,则可以使用以下任一说明:

0 0/30 * * * * ?
0 0,30 * * * * ?

您可以使用以下任一方式检查 crontab 表达式:


推荐