每30分钟后的springcronexpression

我有以下春季工作,每30分钟后运行。 请检查我的cronexpression式,是正确的吗?

“0 0 0 * * 30”

这里是从相关的Spring configuration文件中完整的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> 

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

cronExpression的字段顺序是

1.Seconds

2分钟

3小时

4.Day的日

5.Month

6.Day的星期 –

7.年(可选字段)

确保你至less有6个参数,否则你会得到一个错误(年份是可选的)

 <property name="cronExpression" value="0 0/30 * * * ?" /> 

从graphics上看,Quarz的cron语法是( source ):

 +-------------------- 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.guru来检查crontabexpression式(免责声明:我根本不涉及该页面,只是我觉得它非常有用)。 但是请注意,这个页面使用了没有秒数的cron的UNIX风格,而Spring作为第一个字段。

在web应用程序javaspring什么为我工作

0 0/30 * * *?

这将触发例如上午10:00然后上午10:30等…

 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"> <beans profile="cron"> <bean id="executorService" class="java.util.concurrent.Executors" factory-method="newFixedThreadPool"> <beans:constructor-arg value="5" /> </bean> <task:executor id="threadPoolTaskExecutor" pool-size="5" /> <task:annotation-driven executor="executorService" /> <beans:bean id="expireCronJob" class="com.cron.ExpireCron"/> <task:scheduler id="serverScheduler" pool-size="5"/> <task:scheduled-tasks scheduler="serverScheduler"> <task:scheduled ref="expireCronJob" method="runTask" cron="0 0/30 * * * ?"/> <!-- every thirty minute --> </task:scheduled-tasks> </beans> </beans>