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

如何优雅的取消DAG中的后续图节点 #1562

Open
shenchenlin opened this issue May 23, 2024 · 2 comments
Open

如何优雅的取消DAG中的后续图节点 #1562

shenchenlin opened this issue May 23, 2024 · 2 comments

Comments

@shenchenlin
Copy link

您好,我使用WFGraphTask模拟生成了DAG图,现在遇到一个问题,当某个图节点异常时,无法取消后续节点。
在当前节点调用series_of(),只能操作当前节点,因为图节点之间并不共享series。
请问有什么优雅的方式能取消后续节点的执行吗?

@Barenboim
Copy link
Contributor

你好,这个问题我们也有其他用户提出过。目前来讲,还没有一个特别优雅的方案。你可以先看一下 WFDynamicTask,把可能需要取消的节点用dynamic task来构造,当节点要取消,把任务展开成WFEmptyTask就可以。注意不能展开成nullptr。
WFDynamicTask的接口:

using WFDynamicTask = WFGenericTask;
using dynamic_create_t = std::function<SubTask *(WFDynamicTask *)>;

class WFTaskFactory
{
    static WFDynamicTask *create_dynamic_task(dynamic_create_t create);
};

@Barenboim
Copy link
Contributor

如果有什么好的设计方案也可以讨论一下。

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

No branches or pull requests

2 participants