忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 徽章 文库 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 2533 | 回复: 0

TASKCTL设计作业流时该用定时器还是流程 [复制链接]

论坛徽章:
0
发表于 2017-09-21 10:05 |显示全部楼层
在调度业界中,都有一个跑批的概念。我们通常希望流程在某个时间点开始每天执行一次。比如每天的凌晨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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

DTCC2018购票6.8折优惠进行时

中国数据库技术大会是国内数据库及大数据领域规模最大、最受欢迎的技术交流盛会。 2018年5月10-12日,第九届中国数据库技术大会将如约而至。本届大会以“数领先机•智赢未来”为主题,设定2大主会场及20个技术专场,邀请来自国内外互联网、金融、教育等行业百余位技术专家,共同探讨Oracle、MySQL、NoSQL、大数据等领域的前瞻性热点话题与技术。
----------------------------------------
优惠时间:2018年2月13日前

报名链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP