第一次使用taskctl时,闹了不少笑话,当时只有一个执行两三秒钟的作业,可是配置进 taskctl却要执行很久,并且最后自动退出了,刚开始一直以为是taskctl的问题,后来理解了才整清楚,这里分享给大家。
<serial> <name>MainModul_rootnode</name> <begin> <name>MainModul_beginjob</name> <jobdesc>开始节点</jobdesc> </begin> <!-- 用户模块代码自定义区开始 --> <sh> <name>MainModul_JobNode0</name> <progname>$HOME/mysh.sh</progname> <jobdesc>我的sh作业</jobdesc> </sh> <!-- 用户模块代码自定义区结束 --> <end> <name>MainModul_endjob</name> <jobdesc>结束节点</jobdesc> </end> </serial> |
上面是当时设计的代码页,可以看到只有调用了我的一个shell脚本。流程图也就是长下面这个样
下面是运行的时候的图
这个作业只运行本来只运行几秒钟,结果却运行了很久,到最后还自动退出流程了。
最后在QQ群技术支持的指导下,终于搞明白了,我当时新增的是主流程,运行的时候采用的是正常模式,调度服务也没有注册。因为只有一个作业,没有设置其他的控制节点,且以正常模式运行,实际上该流程一直在重复运行,但因为开始和启动节点几乎就不占用时间,所以感觉就是一直在运行我的sh作业,后来我在shell脚本中多增加了一行追加一行字符串到一个文件,发现确实是这样的,(或者在结束节点锁定上,也是可以发现飞快就执行完了,此时没有重复运行),最后的自动退出是因为我没有注册,不能商用实现连续的7x24连续自动化。
最后,一般的作业,如果是单个作业调试的话,在Designer中,运行任务就不都是可以完成调试的