8000 工作流能力升级,支持任务重复导入、参数个性化、节点禁用、任务失败跳过 · Issue #170 · PowerJob/PowerJob · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

工作流能力升级,支持任务重复导入、参数个性化、节点禁用、任务失败跳过 #170

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Echo009 opened this issue Jan 15, 2021 · 5 comments
Assignees
Labels
new feature new feature

Comments

@Echo009
Copy link
Member
Echo009 commented Jan 15, 2021

支持任务重复导入、参数个性化

需求背景

对于一些通用型的任务,通过传递不同的参数来实现不同的功能,比如 二次封装了 kettle ,通过指定不同的脚本文件,实现不同ETL 功能。如果需要执行多个 ETL 任务,而工作流中不支持导入重复的任务那么就只能配置多个相似的任务(仅有参数不一样)来实现,数据十分冗余。

解决方案

工作流中支持任务重复导入,并且支持任务参数的个性化配置。

节点禁用

需求背景

利用工作流将逻辑相对独立的任务编排组合,实现一个复杂的功能,但业务方有时候会要求暂时不需要执行某个任务,过一段时间再恢复。如果不支持将工作流的某个节点禁用,那么就只能将该节点删除,再调整 DAG 结构,过一段时间再将任务添加回来,重新调整 DAG 结构,操作较为繁琐,ORZ

解决方案

支持禁用工作流中的节点,在执行到该任务节点时,直接跳过,视为执行成功。

任务失败跳过

需求背景

工作流中的某些任务即使失败了也不影响主流程,比如 通知类 的任务,如果不支持就只能在 Processor 做特殊处理,无法直观的看到真正的执行结果(成功 or 失败)。

解决方案

支持指定工作流中的某些节点执行失败时,仅记录日志,直接跳过,不影响后面的工作流执行。

(๑•̀ㅂ•́)و✧

@KFCFans
Copy link
Member
KFCFans commented Jan 16, 2021

我现在完全理解了你说的“参数个性化”,即相同的任务在不同的工作流下的表现形式不一样(参数、执行行为等(比如节点禁用、失败配置)),那么我原来提的那个方案是有问题的,不过大致思路是相同的。

目前看来,原来的那一份 extra 参数 {"jobParams": "xxx", "skipInWorkflow": true, "brokenWorkflowWhenFailed": false}不应该放到 job_info 表中了(也没办法放,因为不同工作流下的 job 这份参数可能不一样),而是直接存到 DAG 的图节点中。这样一样可以在 server 调度时拿到并执行相应的逻辑。

@KFCFans
Copy link
Member
KFCFans commented Jan 16, 2021

image

把配置放到 com.github.kfcfans.powerjob.common.model.PEWorkflowDAG.Node 纬度的话,好像也没必要用 extra 存 JSON 了,直接拍平为3个字段就行。

@KFCFans
Copy link
Member
KFCFans commented Jan 16, 2021

以上是我的一些实现思路,你们可以看看,大家一起讨论~

@Echo009
Copy link
Member Author
Echo009 commented Jan 16, 2021

以上是我的一些实现思路,你们可以看看,大家一起讨论~

嗯嗯,等具体方案出来再讨论(下周二前) (๑•̀ㅂ•́)و✧

@KFCFans
8766 Copy link
Member
KFCFans commented Jan 16, 2021

好的~
真高效,哈哈~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature new feature
Projects
None yet
Development

No branches or pull requests

2 participants
0