xuxueli / xxl-job

A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
http://www.xuxueli.com/xxl-job/
GNU General Public License v3.0
27.37k stars 10.83k forks source link

DAG流程任务 #172

Open ghl116 opened 6 years ago

ghl116 commented 6 years ago

如题

xuxueli commented 6 years ago

你好,感谢关注! 流程任务已经加入TODO列表,后续会排期跟进哈。目前还没有一个轻量级的解决方案,如果有好的方案欢迎交流啊:)


DAY任务规划:

blue20080 commented 6 years ago

这个确实很需要,尤其当一个作业依赖于多个作业的状态时。

MarLo007 commented 6 years ago

建议优先排期跟进

xmw200 commented 6 years ago

建议优先排期跟进

15619323558 commented 6 years ago

建议优先排期跟进。谢谢

15619323558 commented 6 years ago

image

15619323558 commented 6 years ago

类似于这样的就完美了

xuxueli commented 6 years ago

@thinkingfioa @blue20080 @MarLo007 @15619323558

这个特性已经TODO排期、优先级非常高,但是,目前还没有一个轻量级的解决方案,仍然在调研中。如果有好的方案欢迎交流啊:)

ghl116 commented 6 years ago

我之前有用过control-M,后面根据公司要求,做了一套类似精简版本的调度系统,其实实现很简单,各个作业或者作业流只检查前置依赖就可以了,而不需要考虑其他因素。

Kiddinglife commented 5 years ago

@xuxueli you may want to take a look at airflow https://github.com/apache/airflow

yizhanggou commented 4 years ago

请问这个功能现在支持了么?_

xuxueli commented 4 years ago

【Copy From:https://github.com/xuxueli/xxl-job/issues/447

@xuxueli 因项目需要,最近也在关注TO DO里的“流程任务”,期待它早日出炉。关于“流程任务”,有几点想法:

假定一个流程任务,A->B->(C,D)->E,其中CD并行,其余串行。A~E中部分为存量定时任务。

  1. 什么算“轻量依赖”? 如果是强依赖,即稍有乱序或重叠执行就出问题,那么这个流程任务最好被直接设计成一个整体任务(可以搞成聚合服务),流控如果复杂最好上工作流。如果说是弱依赖,即允许存在一定的乱序或重叠执行,只是A~E的触发链用simpleTriggr或cronTrigger不好描述,我觉得这应该算“轻量依赖”,也就是不需要为依赖做那么多的保障,能方便描述这种链式触发时机即可。

2.前后置依赖检查还是“流程任务”? TO DO里说要弃用子任务模式,这点挺认同。试用了下xxl-job v1.9.2,就是简单的后置触发,这样做优点在于简单、调度代码易实现,缺点在于环的问题需要妥善处理(搞了三个测试任务,2是1的子任务,3是2的子任务,2是3的子任务,执行1,几分钟之后,2和3循环执行的日志列表足足三千多页,而且控制台上没有可以停止这种环的按钮,那个暂停对环没用),除了环,对于触发链条的整体描述也不够清晰,在可视化和监控上会比较麻烦。

  1. “流程任务”的几个潜在问题 (1 存量任务执行频度的干扰:假如A~E中B为存量crontrigger触发的任务,如果不想让其周期性的执行影响流程任务,最好把B停掉。这个可以做强制检查,或者作为最佳实践推荐。 (2 是否存在死链:比如执行到B失败,下一次还是从A开始执行,因为A短期内已执行成功(也可能是正常cron调度成功的),存量任务大都是独立定时任务,此时A的执行逻辑极有可能定义为执行失败,那么B及之后的任务就没有机会执行。建议增强整体的失败重试机制,比如对于流程任务整体,设置“断点续执行”(配合最大执行次数的限定),先从log表中拿执行状态,然后决定从A还是B或C开始执行。 (3 流程任务中的元任务是否可以为别的流程任务:首先,元任务肯定不能为自身,如果可以,且流程任务里有一些简单的串并行支持,那么互相结合就能描述相对复杂的串并行,但是这样也有潜在的环需要检测,实现细节上还是要做不少处理;如果不可以,那么干脆就支持简单的串并行好了,其实绝大多数场景都够用了,不够用的估计也不算“轻量依赖”。
xuxueli commented 4 years ago

【Copy From:https://github.com/xuxueli/xxl-job/issues/1451

你好,我们项目已经上了XXL-JOB很长一段时间了,主要是觉得XXL容易开发和管理,但是却缺少多流程任务管理,这在大数据任务中经常有这种用法,当前子任务的功能太薄弱了。建议完成DAG流程任务,这才能让XXL-JOB成为一个生产级别的、通用的调度框架,其他调度框架真的比较难用。

以下是一个开源的调度,已完成DAG流程图 https://github.com/apache/incubator-dolphinscheduler

image

geosmart commented 4 years ago

建议优先排期跟进。谢谢

viokuma commented 4 years ago

https://vipshop.github.io/Saturn 唯品会开源的Saturn有作业编排功能,@xuxueli可以参考下

oszhugc commented 4 years ago

🥇 急需DAG任务调度 +1

pilipala0314 commented 4 years ago

xxl-job真的解决了我的许多需求。这真的是一个非常好的框架。但是同样也有额外的需求就是DAG任务调度。虽然目前通过子任务的模式可以实现批量串行任务的调度。但是缺少了重启任务功能的支持。一般对于DAG任务调度的需求的前提都是。需要保证各个子任务正常完成。我认为这种需求的核心是[多任务]的串行、并行、可断点重启。感谢作者

yangyanqing commented 4 years ago

DAG 在 azkaban 下支持的很完美了 https://azkaban.github.io/ image

wychenlong commented 4 years ago

现在支持任务编排了嘛?

wychenlong commented 4 years ago

支持自己动态的切分任务嘛?比如启动一个任务按照一定的逻辑 进行切分子任务

RCXLD commented 4 years ago

2017 年就提出请求,现在还没有,这个产品从一开始定位就是普通批量任务调度执行吧。

yangyzh commented 4 years ago

@thinkingfioa @blue20080 @MarLo007 @15619323558

这个特性已经TODO排期、优先级非常高,但是,目前还没有一个轻量级的解决方案,仍然在调研中。如果有好的方案欢迎交流啊:)

看DAG流程任务,已经规划到了V2.3.0了,有大概排期吗?

7.32 版本 v2.3.0 Release Notes[规划中] 1、[规划中]多数据库支持,DAO层通过JPA实现,不限制数据库类型; 2、[规划中]告警增强:邮件告警 + webhook告警; 3、[规划中]DAG流程任务

xey11111 commented 3 years ago

找到一个这个,看看有没有用。 https://github.com/kpali/wolf-flow

LinWanCen commented 3 years ago

前阵子写了个玩意,主要是基于上家公司工商银行的分布式批量框架只做依赖关系查看而不是编辑的需求自己捣腾的,之前用 Graphviz 做的不能拖动缩放,也没有缩列图,查看大型依赖图体验不是很好,这个用的库 Jtopo 有一定的局限性而且原作者已经不维护了,但是 dagre-d3 没有现有的缩列图等功能。 https://github.com/LinWanCen/JTopoGraphvizDot

用于程序生成批量作业依赖图,支持分组,可拖拽搜索,右键复制与打开链接,全屏可缩放并带缩略图

LinWanCen commented 3 years ago

考虑蚂蚁金服的流程图来实现也不错: https://charts.ant.design/demos/dagre-graph

fddc commented 3 years ago

非常非常需要这个功能

Reese1995 commented 3 years ago

大佬加把劲, 这个功能太重要了, 刚需啊

Lujango commented 2 years ago

加油

CodeNoobLH commented 2 years ago

这个功能我等了一年……

Felixchen1024 commented 2 years ago

同样在等这个功能,生产上刚需啊,大佬加油,持续关注

anpbszzz commented 2 years ago

DAG还没搞出来啊?

buzilong commented 1 year ago

遇到什么难题了吗,为什么还没有上,从提出到现在5年了啊

Lujango commented 1 year ago

应该是没有钱的问题

LiangJiechao commented 1 year ago

你好,我想问问 父任务和子任务的关联,就是父任务执行完后怎么触发子任务的执行的,我在调试时都没看到父子之间的关联,但是子任务确实是父任务执行完后触发的

ChenpiDog commented 1 year ago

我们也很需要DAG

LiangJiechao commented 1 year ago

如果你只是想实现简单的父传子,或者1父多子这种参数的传递,可以参考一下 https://github.com/xuxueli/xxl-job/issues/2965

Bored-AnnoYing commented 7 months ago

2024年了