一个国产的基于事件的流程编排和调度引擎

xuda7342399 发布于 01/15 09:21
阅读 993
收藏 1

GtiHub地址:https://github.com/xuda783380930/job-dispatcher.git

GitEE地址:https://gitee.com/daye_daye/job-dispatcher

基本模型:

基于事件或者定时生成一个job,每个job由若干个task组成,task之间存在串行或并行的依赖关系

task的具体实现引由客户端(用户自己编程实现),调度引擎只负责按照拓扑顺序发出HTTP信号触发任务

由客户端发出HTTP通知引擎任务任务的完成状态,调度引擎据此继续发出后续调度信号

使用场景:

任务编排,事件驱动或时间驱动的任务调度,如企业级ETL调度等

特点:

调度引擎只做调度和任务编排,不参与具体任务实现和执行,可看作一个HTTP信号发射和接收器,具有极大的适用性,天生支持异构系统,引擎端和任务实现端彻底的解耦。

job-dispatcher是微服务中的一个独立组件,而非作业平台,因此它并不去实现各类任务的运行环境的适配工作,任何实现了配置中子任务HTTP启动接口的程序都可以作为job-dispatche的客户端,无论是何种语言何种数据库的程序。

相似项目: Linkedin公司推出的Azkaban , 国产软件TASKCTL, 欢迎大家对比提出意见

加载中
0
红薯官方
红薯官方

基于流程引擎 Flowable /Activiti 也可以实现这种流程类的自动化调度。

0
x
xuda7342399

引用来自“蓝水晶飞机”的评论

基于流程引擎 Flowable /Activiti 也可以实现这种流程类的自动化调度。

Flowable /Activiti 比我这个强大且标准,

缺点就是作为一个通用的工作流引擎,需要适配的场景比较多,比如OA工作流程等等。

说穿了,基于Flowable你可以开发一个OA系统了。

我的这个做了最大程度的精简、解耦,只做调度和依赖编排,

至于节点的数据、操作等等全部不考虑,全部掌握job-dispatcher的内部实现和使用方法,一天足矣。

也许这种简单的设计,足够可以支持中小团队单业务类型的调度任务

0
x
xuda7342399

比如:flowable支持httpTask等新的类型节点,activiti没有

而job-dispatcher中,只存在httpTask这种节点

job-dispatcher是一个可独立部署的组件,而非一个编程框架

返回顶部
顶部