Explorar o código

perf: Implemented short-circuit evaluation for logical conditions (#13674)

Co-authored-by: liusurong.lsr <liusurong.lsr@alibaba-inc.com>
llinvokerl hai 2 meses
pai
achega
33a565a719
Modificáronse 1 ficheiros con 4 adicións e 0 borrados
  1. 4 0
      api/core/workflow/utils/condition/processor.py

+ 4 - 0
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