TASKCTL设计作业流时该用定时器还是流程

在调度业界中,都有一个跑批的概念。我们通常希望流程在某个时间点开始每天执行一次。比如每天的凌晨1点开始执行一次。在TASKCTL中,有两种方式可以实现该需求。

使用“condition+修改批次变量”

1、首先需要添加日期批次变量,如workdate,并设置变量格式为yyyymmdd,如20170101

2、编写流程模块代码如下:

<serial>
 
<name>MainModul_rootnode</name>
 
<begin>
   
<name>MainModul_beginjob</name>
 
</begin>
 
<nulljob>
   
<name>startctljob</name>
   
<jobdesc>启动触发控制节点</jobdesc>
   
<condition>if($(workdate)&lt;systime('yyyymmdd')and (systime('hh')&gt;='01')) CTL_DOIT else CTL_WAIT</condition>
 
</nulljob>
 
<!-- 用户模块代码自定义区开始 -->
 
<!-- 一个实际的流程 -->
 
<!-- 翻牌修改workdate -->
 
<modivarv>
   
<name>passflow</name>
   
<para>varname=workdate,varvalue=$(addday('$(workdate)','yyyymmdd', 1))</para>
   
<jobdesc>翻牌:修改变量</jobdesc>
 
</modivarv>
 
<end>
   
<name>MainModul_endjob</name>
 
</end>
</serial>

注:在正式启动的流程的时候,需要设置workdate 等于当前系统日期,以保证流程不会多次运行。

使用“定时器+子流程”

1、 首先我们需要把任务组装成一个子流程

添加一个定时器,在定时器中添加任务类型为子流程节点,并调用刚刚设计的子流程,在定时器的频率中添加定时的频率,比如 010000 d 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值