我的spring定时为<property name="cronExpression" value="* * 1 1 * ?" /> 每个月的1号1点执行,如果我将时间调到1月1号1点启动tomcat执行了,但是若我此时将时间调到2点就不执行,再将时间调到1点还是不执行 这是什么原因呢 怎么解决若将定时改为<property name="cronExpression" value="0 0 1 1 * ?" /> 也就是每个月的1号1点整执行,我将时间调到00:59:00启动tomcat等到了1点整还是不执行 怎么回事啊 求解决
附上quartz配置
<bean id="businessReport" class="com.idkj.SystemManage.CreateFolder.CreateFolder"/> <bean id="reportTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="businessReport" /> <property name="targetMethod" value="perform" /> <property name="concurrent" value="false" /> </bean> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="reportTask" /> <property name="cronExpression" value="0 0 1 1 * ?"/> </bean> <bean autowire="no" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <!-- <property name="targetObject" ref="hibernateTemplate" /> --> <property name="triggers"> <list> <ref bean="cronTrigger" /> </list> </property> <property name="autoStartup" value="true"/></bean>
quartz是没有问题的,定时任务肯定执行一次就结束了,比如现在9点55,你就设置10点,10点到了设置10点02执行,这样就避免时间不统一的问题了。