xxl-job之实现流程任务编排思路

xxl-job之实现流程任务编排思路
背景
   某⼀天⼀如既往的上班”旅途“中,我的领导在开早会的时候,说我最近没啥事,于是让我研究⼀下Activiti⼯作流引擎与Drools规则引擎,当时也不知道后边具体要做什么,管它的,先看看再说。看了⼏天后,写了个简单的demo出来,结果发现Activiti这个东西不就是可以⽤来做流程审批的嘛;最后我们就开始开发基于Activiti的⼯作流引擎。并且部分功能与定时任务调度中⼼进⾏整合,实现了简单的流程编排任务。
因为⼯作流相关的东西在公司的电脑上,公司对于安全保密性⼗分严格,所以本⽂不阐述具体实现,只记录⼀下我当时的实现思路。
   调度中⼼本⾝有⼀个⼦任务的概念,但⼦任务是有先后顺序的,所以这⾥不太符合需求。在xxl-job的github上我看到过这样⼀个issue:
看来还是很多⼈想要这个功能呢,⽬前我们先⾃⼰实现⼀个简单的流程任务编排。
实现思路
概念描述
   因为涉及到了⼯作流的东西,在此处只简单介绍⼀下Activiti⼯作流引擎。
⼯作流(WorkFlow),就是”业务过程的部分或整体在计算机应⽤环境下的⾃动化“,它主要解决的是”使在多个参与者之间按照某种预定义的规则传递⽂档、信息或任务的过程⾃动进⾏,从⽽实现某个预期的业务⽬标,或者促使此⽬标的实现“,简单的说:⼯作流将⼀套⼤的业务逻辑分解成业务逻辑段,并统⼀控制这些业务逻辑段的执⾏条件,执⾏顺序以及相互通信。实现业务逻辑的分解和解耦。
关键概念:
服务节点:⽤户任务,服务任务,接受任务,脚本任务等
⽹关节点:互斥⽹关,并⾏⽹关等
名古屋 南京
逻辑判断节点:类似于if/else
   我们在⼯作流的开发中主要是包装了服务节点以及⽹关节点和逻辑节点等内容,让服务节点类似于⼀个http⽹络请求,触发微服务的接⼝,同时等待微服务接⼝返回内容,放⼊到流程中,执⾏后边的流程。
思路设计
   我在开发调度中⼼的⼯作流模式时时通过SDK的⽅式引⼊⼯作流模式,减少系统间的耦合,实现⼯作流模式后可以做⼀些简单的编排任务,⽐如多个Jobhandler的组合执⾏⽅式。
   下⾯是⽅案的设计思路:
   ⼤致就是:调度中⼼与⼯作流系统之间通过SDK的⽅式进⾏通信,调度中⼼的任务和⼯作流的任
视频指挥调度系统
务是相同概念的,都是⼀次完整的触发过程。调度中⼼的执⾏器对应于⼯作流的服务任务节点,在⼯作流节点端可以配置相应的Jobhandler,当要执⾏定时任务时,会⾸先通过SDK触发⼯作流任务开始执⾏,然后执⾏到调度中⼼端,在调度中⼼端去触发相应的业务端相应的Jobhandler,达到执⾏多任务的效果。人类的起源与进化
   当任务执⾏完成后我们去回调⼯作流获取任务状态接⼝以此来同步调度中⼼任务的执⾏状态。
张培基注意点:在我们选择⼯作流模式配置定时任务的时候,我们不再需要填写Jobhandler参数,只需要绑定⼯作流的启动key即可,作图的时候直接在服务节点上填写Jobhandler参数。
说明
东岳论丛编辑部
   ⼤体上的思路就是这样,可能⽐较粗略还有点抽象...,本来想结合⼀些实际的页⾯UI以及代码来说明,但因涉及到公司安全的问题,所以只能这样了,因为如果我要本地弄这些,⼯程量实在有点巨⼤...
说客盈门   本篇⽂章记录了⼀下当时的思路,⼤致上有这么⼀种⽅式可以来实现简单功能,但是增加了⼀些学习成本,⽐如⼯作流引擎相关知识

本文发布于:2024-09-21 13:20:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/284540.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:作流   任务   实现   节点
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议