@@ -25,7 +25,12 @@ class BaseDataSourceWebNodeForm(BaseForm):
2525 'placeholder' : _ ('The default is body, you can enter .classname/#idname/tagname' )})
2626
2727
28- def get_collect_handler ():
28+ class InterruptedTaskException (Exception ):
29+ def __init__ (self , * args , ** kwargs ): # real signature unknown
30+ pass
31+
32+
33+ def get_collect_handler (workflow_manage ):
2934 results = []
3035
3136 def handler (child_link : ChildLink , response : Fork .Response ):
@@ -37,8 +42,11 @@ def handler(child_link: ChildLink, response: Fork.Response):
3742 "name" : document_name .strip (),
3843 "content" : response .content ,
3944 })
45+
4046 except Exception as e :
41- maxkb_logger .error (f'{ str (e )} :{ traceback .format_exc ()} ' )
47+ maxkb_logger .error (f'{ str (e )} :{ traceback .format_exc ()} ' )
48+ if workflow_manage .is_the_task_interrupted ():
49+ raise InterruptedTaskException ('Task interrupted' )
4250
4351 return handler , results
4452
@@ -60,15 +68,18 @@ def execute(self, **kwargs) -> NodeResult:
6068 source_url = data_source .get ("source_url" )
6169 selector = data_source .get ("selector" ) or "body"
6270
63- collect_handler , document_list = get_collect_handler ()
71+ collect_handler , document_list = get_collect_handler (self . workflow_manage )
6472
6573 try :
6674 ForkManage (source_url , selector .split (" " ) if selector is not None else []).fork (3 , set (), collect_handler )
6775
68- return NodeResult ({'document_list' : document_list ,'source_url' : source_url , 'selector' : selector },
76+ return NodeResult ({'document_list' : document_list , 'source_url' : source_url , 'selector' : selector },
6977 self .workflow_manage .params .get ('knowledge_base' ) or {})
7078
7179 except Exception as e :
80+ if isinstance (e ,InterruptedTaskException ):
81+ return NodeResult ({'document_list' : document_list , 'source_url' : source_url , 'selector' : selector },
82+ self .workflow_manage .params .get ('knowledge_base' ) or {})
7283 maxkb_logger .error (_ ('data source web node:{node_id} error{error}{traceback}' ).format (
7384 knowledge_id = node_id , error = str (e ), traceback = traceback .format_exc ()))
7485
0 commit comments