1. 程式人生 > >定時任務的使用以及配置

定時任務的使用以及配置

在我們做java開發中,常常需要用到定時任務,就是在某個特定時間段執行你需要的功能,特別是在第三方支付中,在使用者使用你的某些功能如:提現,轉賬等等,會用到T+1來給使用者做交易,這裡就需要定時任務。

T+1:T指的是今天,例如,你今天做了一筆交易,規定T+1到賬,就是說明天會到賬。當然,T+1,所代表的時間必須是工作日,禮拜天,國家規定法定節假日是不能當作T+1的時間。

想要做定時任務,首先需要配置檔案,以及執行具體功能的class類。

在我的maven專案中,是將配置檔案寫在了application.xml 檔案中。

(1)定義執行功能class類所在的位置:id代表其唯一值,class:路徑

<bean id="queryWithdrawOrderJob" class="com.xxx.xxxx.xxxxxx.xxx.WithdrawOrderJob"></bean>

(2)第二步的配置 property 中name的值不可改變

<bean id="orderResultTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">//引用包
<property name="targetObject" ref="queryWithdrawOrderJob"/>//表示引用上一步定義好的功能類class

<property name="targetMethod" value="getResult"/>//表示具體執行的是哪個方法
<property name="concurrent" value="false" />//表示是否同意多執行緒,false為不同意
</bean>

(3)第三配置   property 中name的值不可改變      來配置你的定時任務在什麼時候執行

<bean id="orderResultTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> //引用包

<property name="jobDetail" ref="orderResultTask" /> //對應上一步配置的id號
<property name="cronExpression">  //配置時間
   <value>0 30 10 ? * *</value>  //代表每天早上十點半,具體怎麼配置可以搜尋定時任務的時間配置   秒 分 時 日 月 年 
</property>
</bean>

(4)第四步配置  trigger 觸發這個定時任務

<bean id="quartzScheduler"    class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="orderResultTrigger"/>
</list>
</property>
</bean>



   最後,執行定時任務時,會進入到上文的WithdrawOrderJob檔案中執行,基於java,首先會執行main方法,把你需要執行的程式碼放到main方法中就可以。