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] 工作流合并的All逻辑支持忽略本次执行不到的前续节点分支 #2099

Closed
xxyj6450 opened this issue Jan 24, 2025 · 10 comments
Assignees

Comments

@xxyj6450
Copy link

MaxKB Version

1.9.2

Please describe your needs or suggestions for improvements

流程执行时,合并节点的ALL逻辑应该忽略前续根本执行不到到分支和节点,以防被这些无效的分支阻塞。

Please describe the solution you suggest

合并节点为ALL逻辑时,在等待前续节点分支到达的同时,要回溯前续节点分支链,并判断前续节点链是否仍存在运行中的节点,如果前续节链中的节点全部不在运行中,则意味着前续节点本次不会被执行,应当忽略该前续节点分支,继续往后执行。

Additional Information

No response

@shaohuzhang1
Copy link
Contributor

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


Maxkb Version

1.9.2

Please Describe Your Needs or Suggestions for Improvements

When the process execution is performed, the ALL logic of the combined node should ignore the continuous execution of the branches and nodes to prevent these invalid branches from being blocked.

Please Describe the solution you suggest

When the merger node is ALL logic, while waiting for the renewal of the previous sequel node, it is necessary to go back to the front node branch chain, and determine whether the previous sequel node chain still has running nodes. In, it means that the advance nodes will not be executed this time, and it should be ignored.

additional information

_No Response

@baixin513
Copy link
Contributor

感谢反馈,前置节点如果有执行不到的,你可以把该节点的执行条件设置为Any, 设置为All就是要前置节点全部执行完成再执行当前节点。

@shaohuzhang1
Copy link
Contributor

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


Thank you for the feedback. If the front node cannot be executed, you can set the execution conditions of the node to Any, and the ALL is to perform the entire node and then execute the current node.

@xxyj6450
Copy link
Author

xxyj6450 commented Feb 5, 2025

感谢反馈,前置节点如果有执行不到的,你可以把该节点的执行条件设置为Any, 设置为All就是要前置节点全部执行完成再执行当前节点。

不,any逻辑会只要任何一个前续节点到达就会往后执行。
而我的需求仍然是and逻辑,只是要忽略那些本次根本就不会执行不到的前续节点。

@shaohuzhang1
Copy link
Contributor

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


Thanks for the feedback. If the front node cannot be executed, you can set the execution conditions of the node to Any, and the ALL is to complete the complete node before the execution of the current node.

No, ANY logic will be executed as long as any one -sequing node arrives.
And my demand is still AND logic, but I have to ignore the sequel nodes that will not be performed at all.

@baixin513
Copy link
Contributor

any就是忽略执行不到的前置节点,你再研究研究

@shaohuzhang1
Copy link
Contributor

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


Any is the front node that cannot be executed.

@xxyj6450
Copy link
Author

xxyj6450 commented Feb 6, 2025

any就是忽略执行不到的前置节点,你再研究研究

any是会忽略执行不到的前续分支。但不会等待其他仍在执行中的前续分支。
我要的效果是,同步等待所有可以执行到的分支,同时忽略不会执行到的分支。

@shaohuzhang1
Copy link
Contributor

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


any means ignore the pre-nodes that cannot be executed, and you can study it again

any will ignore the successor branches that cannot be executed. But no other forward branches are waiting for.
The effect I want is to wait for all branches that can be executed synchronously, while ignoring branches that will not be executed.

@xxyj6450
Copy link
Author

any就是忽略执行不到的前置节点,你再研究研究

而且由于any不会同步等待前续节点,当有多个分支同时到达,会造成该合并节及后续流程被多次执行。
这是流程:

Image
这是执行结果,可以看到从any节点开始被重复执行了3次

Image

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

3 participants