Ver código fonte

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

Co-authored-by: liusurong.lsr <liusurong.lsr@alibaba-inc.com>
llinvokerl 2 meses atrás
pai
commit
33a565a719
1 arquivos alterados com 4 adições e 0 exclusões
  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