加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

调度工具taskctl跨调度服务依赖实现

发布时间:2020-12-14 01:08:57 所属栏目:百科 来源:网络整理
导读:调度工具taskctl虽然支持分布式调度,但是有的时候,不同重要程度的调度服务还是要区分开来,在区分开后,不同调度服务之间怎么实现依赖啦, 其实有很多方式,比如写文件,写数据库之类的,这些都可以根据用户自己的设计来实现,但其实taskctl自带的消息发送

调度工具taskctl虽然支持分布式调度,但是有的时候,不同重要程度的调度服务还是要区分开来,在区分开后,不同调度服务之间怎么实现依赖啦,

  其实有很多方式,比如写文件,写数据库之类的,这些都可以根据用户自己的设计来实现,但其实taskctl自带的消息发送组件也是可以做到的,只是大家没发现(已经向官方求证和亲测过了)

  下面就把这个比较强大的功能跨调度服务依赖分享给大家:

我这里说的是跨调度服务器依赖,不是同一调度服务的同一流程中的用Lean属性;也不是同一调度服务的不同流程,用事件发送节点和事件接收节点来做;而且调度服务器B上的某一作业b_work1依赖于调度服务器A上的某一个作业a_worke作业。

其实原理和跨流程依赖类似,只是跨服务依赖时,原先的事件发送节点不能用了,但是taskctl其实提供了ctlsendevent这个可执行程序,用来向核心发送事件命令。首先在调度服务器A的a_worke作业后面添加一个exe作业,程序名称就是ctlsendevent,参数分别是目标IP 端口 用户名 用户密码 事件,如下所示

<exe>

<name>sendevent</name>

<progname>ctlsendevent</progname>

<para>$(server_ip) $(server_port) $(user) $(passwd) $(enentbufflow)</para>

</exe>

而在B调度服务器的b_work1作业前,按正常的添加一个事件接受节点,接受的消息和发送的消息一致即可。如下

<recvevent>

<name>job1</name>

<para>$(enentbufflow)</para>

</recvevent>

如上配置好后就可以实现跨调度服务依赖了。

我测试过,这个 ctlsendevent 程序是一个可以独立运行的程序,不依赖于是否安装了taskctl,那意味着大家拿去的可玩空间很大,比如像封装在web服务中,点击页面上的某个按钮就可以触发web服务去执行这个程序,发送相应的消息,web的验证体系由web服务做,但是web服务又和调度服务分开,充分的完成了很多安全需求。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读