該文章屬於本人原創,轉載請注明出處。
spring + Quartz 設置定時任務時要求沒一個半小時執行一次
設置兩個相同的定時任務
第一個從整點開始每三小時執行一次
<!--每三小時執行一次任務,從整點開始-->
<
property
name
=
"cronExpression"
value
=
"0 0 0/3 * * ?"
></
property
>
第二個從一個半小時后開始每三小時執行一次
<!--每三小時執行一次任務,
從一個半小時后開始
-->
<
property
name
=
"cronExpression"
value
=
"0 30 1/3 * * ?"
></
property
>
spring核心代碼示例:
<!--獲取demoTask定時任務start -->
<bean id ="demoTask" class="com.bdx.itpl.wcpay.quartz.task.OrdinaryAccessTokenAndJsApiTicketTask" />
<bean id ="demoMethod" class= "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
<property name ="targetObject">
<ref bean ="demoTask"/>
</property >
<property name ="targetMethod">
<value >execute </value ><!-- 要執行的方法名稱 -->
</property >
</bean >
<bean id ="demoBean" class= "org.springframework.scheduling.quartz.CronTriggerFactoryBean" >
<property name ="jobDetail" ref= "demoMethod" ></property >
<!--每三小時執行一次任務,從整點開始-->
<property name ="cronExpression" value="0 0 0/3 * * ?"></property>
</bean >
<bean id ="demoBean2" class= "org.springframework.scheduling.quartz.CronTriggerFactoryBean" >
<property name ="jobDetail" ref= "demoMethod" ></property >
<!--每三小時執行一次任務,從一個半小時后開始 -->
<property name ="cronExpression" value="0 30 1/3 * * ?"></property>
</bean >
<!--獲取OrdinaryAccessTokenAndJsApiTicketTask定時任務end-->
<!-- ======================== 調度工廠 ======================== -->
<bean id ="SpringJobSchedulerFactoryBean" class= "org.springframework.scheduling.quartz.SchedulerFactoryBean" >
<property name ="triggers">
<list >
<ref bean= "demoBean" />
<ref bean= "demoBean2" />
</list >
</property >
