Skip to content

Commit e73414d

Browse files
committed
perf: Optimize workflow logic (#1996)
(cherry picked from commit 3e327d5)
1 parent c6e9a99 commit e73414d

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

apps/application/flow/workflow_manage.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -342,15 +342,19 @@ def run_stream(self, current_node, node_result_future):
342342
self.run_chain_async(current_node, node_result_future)
343343
return tools.to_stream_response_simple(self.await_result())
344344

345-
def is_run(self, timeout=0.1):
346-
self.lock.acquire()
345+
def is_run(self, timeout=0.5):
346+
future_list_len = len(self.future_list)
347347
try:
348348
r = concurrent.futures.wait(self.future_list, timeout)
349-
return len(r.not_done) > 0
349+
if len(r.not_done) > 0:
350+
return True
351+
else:
352+
if future_list_len == len(self.future_list):
353+
return False
354+
else:
355+
return True
350356
except Exception as e:
351357
return True
352-
finally:
353-
self.lock.release()
354358

355359
def await_result(self):
356360
try:
@@ -403,12 +407,8 @@ def run_chain_manage(self, current_node, node_result_future):
403407
# 获取到可执行的子节点
404408
result_list = [{'node': node, 'future': executor.submit(self.run_chain_manage, node, None)} for node in
405409
sorted_node_run_list]
406-
try:
407-
self.lock.acquire()
408-
for r in result_list:
409-
self.future_list.append(r.get('future'))
410-
finally:
411-
self.lock.release()
410+
for r in result_list:
411+
self.future_list.append(r.get('future'))
412412

413413
def run_chain(self, current_node, node_result_future=None):
414414
if node_result_future is None:

0 commit comments

Comments
 (0)