From 33a565a719036a99c95745944ebdff1432abddc9 Mon Sep 17 00:00:00 2001 From: llinvokerl <38915183+llinvokerl@users.noreply.github.com> Date: Thu, 13 Feb 2025 19:35:03 +0800 Subject: [PATCH] perf: Implemented short-circuit evaluation for logical conditions (#13674) Co-authored-by: liusurong.lsr --- api/core/workflow/utils/condition/processor.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/api/core/workflow/utils/condition/processor.py b/api/core/workflow/utils/condition/processor.py index 19473f39d2..c61b3d1861 100644 --- a/api/core/workflow/utils/condition/processor.py +++ b/api/core/workflow/utils/condition/processor.py @@ -64,6 +64,10 @@ class ConditionProcessor: expected=expected_value, ) group_results.append(result) + # Implemented short-circuit evaluation for logical conditions + if (operator == "and" and not result) or (operator == "or" and result): + final_result = result + return input_conditions, group_results, final_result final_result = all(group_results) if operator == "and" else any(group_results) return input_conditions, group_results, final_result