在調(diào)度業(yè)界中,都有一個跑批的概念。我們通常希望流程在某個時間點(diǎn)開始每天執(zhí)行一次。比如每天的凌晨1點(diǎn)開始執(zhí)行一次。在TASKCTL中,有兩種方式可以實現(xiàn)該需求。 使用“condition+修改批次變量” 1、首先需要添加日期批次變量,如workdate,并設(shè)置變量格式為yyyymmdd,如20170101 2、編寫流程模塊代碼如下: <serial>
<name>MainModul_rootnode</name>
<begin>
<name>MainModul_beginjob</name>
</begin>
<nulljob>
<name>startctljob</name>
<jobdesc>啟動觸發(fā)控制節(jié)點(diǎn)</jobdesc>
<condition>if($(workdate)<systime('yyyymmdd')and (systime('hh')>='01')) CTL_DOIT else CTL_WAIT</condition>
</nulljob>
<!-- 用戶模塊代碼自定義區(qū)開始 -->
<!-- 一個實際的流程 -->
<!-- 翻牌修改workdate -->
<modivarv>
<name>passflow</name>
<para>varname=workdate,varvalue=$(addday('$(workdate)','yyyymmdd', 1))</para>
<jobdesc>翻牌:修改變量</jobdesc>
</modivarv>
<end>
<name>MainModul_endjob</name>
</end>
</serial>
注:在正式啟動的流程的時候,需要設(shè)置workdate 等于當(dāng)前系統(tǒng)日期,以保證流程不會多次運(yùn)行。 使用“定時器+子流程” 1、 首先我們需要把任務(wù)組裝成一個子流程 添加一個定時器,在定時器中添加任務(wù)類型為子流程節(jié)點(diǎn),并調(diào)用剛剛設(shè)計的子流程,在定時器的頻率中添加定時的頻率,比如 010000 d 1
|