Skip to content
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

[Feature][MasterServer] Dependent tasks can re-run automatically in the case of complement #8373

Closed
2 of 3 tasks
caishunfeng opened this issue Feb 14, 2022 · 3 comments · Fixed by #8496
Closed
2 of 3 tasks
Assignees
Labels
feature new feature help wanted Extra attention is needed
Milestone

Comments

@caishunfeng
Copy link
Contributor

caishunfeng commented Feb 14, 2022

Search before asking

  • I had searched in the issues and found no similar feature requirement.

Description

  • Feature Scenario:
    When an exception occurs in the upstream task and needs to re-run complement, hope that can selete to re-run the dependent task automatically when cross DAG.

  • Analysis:
    Now in DS, there are two dependent task types: DEPENDENT and SUB_PROCESS. SUB_PROCESS task can re-run when parent workflow execute, so what we need to support is the DEPENDENT task type.

  • Main idea:

    • How to get the workflow relationship? Now there is no relation table of workflow, but you can use the WorkFlowLineage, see WorkFlowLineageServiceImpl.queryWorkFlowLineage, if there are dependencies on multiple upstreams, the dependent nodes need to be deduplicated.
    • The same time frequency, for example, DAG A1 schedule each hour, and the DAG B1 which use a DEPENDENT task B1.a1 to check A1.a1, the time frequency for the DEPENDENT task B1.a1 to check must be every hour. (If B1.a1 check each day, auto re-run will create many useless B1 process instances; But if you have a good idea, please say it)
    • Dependent task should be the start task to re-run, if it has some front task, all these front tasks should be skip.

Chinese Translation:

  • 功能场景:
    当上游任务发生异常需要重新补数时,希望跨DAG的情况下可以选择自动触发下游任务补数。

  • 分析:
    现在在DS 中,有两种依赖任务类型:DEPENDENT 和 SUB_PROCESS。 SUB_PROCESS 任务可以在父工作流执行时重新运行,所以我们需要支持的是 DEPENDENT 任务类型。

  • 大致思路:

    • 如何获得工作流关系?现在DS没有工作流的关系表,但是你可以借鉴WorkFlowLineage,见WorkFlowLineageServiceImpl.queryWorkFlowLineage,如果有依赖多个上游的情况,依赖节点需要去重;
    • 相同的时间频率,例如DAG A1调度每小时一次,DAG B1使用DEPENDENT任务B1.a1检查A1.a1,DEPENDENT任务B1.a1检查的时间频率必须是每小时。 (如果 B1.a1 每天检查一次,则自动触发下游补数会创建很多无用的 B1 流程实例;如果您有好的想法,请告诉我)
    • 依赖任务应该是自动触发下游补数的开始节点,如果它有一些前置任务,则所有这些前置任务都应该跳过。

Use case

No response

Related issues

No response

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Code of Conduct

@caishunfeng caishunfeng added feature new feature Waiting for reply Waiting for reply labels Feb 14, 2022
@github-actions
Copy link

Search before asking

  • I had searched in the issues and found no similar feature requirement.

Description

  • Feature Scenario:
    When an exception occurs in the upstream task and needs to re-run complement, hope that can selete to re-run the dependent task automatically when cross DAG.

  • Analysis:
    Now in DS, there are two dependent task types: DEPENDENT and SUB_PROCESS. SUB_PROCESS task can re-run when parent workflow execute, so what we need to support is the DEPENDENT task type.

  • Main idea:

    • How to get the workflow relationship? Now there is no relation table of workflow, but you can use the WorkFlowLineage, see WorkFlowLineageServiceImpl.queryWorkFlowLineage
    • The same time frequency, for example, DAG A1 schedule each hour, and the DAG B1 which use a DEPENDENT task B1.a1 to check A1.a1, the time frequency for the DEPENDENT task B1.a1 to check must be every hour. (If B1.a1 check each day, auto re-run will create many useless B1 process instances; But if you have a good idea, please say it)
    • Dependent task should be the start task to re-run, if it has some front task, all these front tasks should be skip.

Chinese Translation:

  • 功能场景:
    当上游任务发生异常需要重新补数时,希望跨DAG的情况下可以选择自动触发下游任务补数。

  • 分析:
    现在在DS 中,有两种依赖任务类型:DEPENDENT 和 SUB_PROCESS。 SUB_PROCESS 任务可以在父工作流执行时重新运行,所以我们需要支持的是 DEPENDENT 任务类型。

  • 大致思路:

    • 如何获得工作流关系?现在DS没有工作流的关系表,但是你可以借鉴WorkFlowLineage,见WorkFlowLineageServiceImpl.queryWorkFlowLineage
    • 相同的时间频率,例如DAG A1调度每小时一次,DAG B1使用DEPENDENT任务B1.a1检查A1.a1,DEPENDENT任务B1.a1检查的时间频率必须是每小时。 (如果 B1.a1 每天检查一次,则自动触发下游补数会创建很多无用的 B1 流程实例;如果您有好的想法,请告诉我)
    • 依赖任务应该是自动触发下游补数的开始节点,如果它有一些前置任务,则所有这些前置任务都应该跳过。

Use case

No response

Related issues

No response

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Code of Conduct

@github-actions
Copy link

Hi:

@caishunfeng caishunfeng added help wanted Extra attention is needed and removed Waiting for reply Waiting for reply labels Feb 14, 2022
@SbloodyS
Copy link
Member

I would like to develop this feature. Please assign to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature new feature help wanted Extra attention is needed
Projects
None yet
2 participants