fix(sdk): add cancel_all_task_of call in stop_parsing endpoint
The SDK API endpoint DELETE /datasets/{id}/chunks only updated
database status but did not send cancellation signal via Redis,
causing background tasks to continue and complete.
This fix adds cancel_all_task_of(id) call to properly stop
background parsing tasks, consistent with the web API behavior.
This commit is contained in:
parent
cfdccebb17
commit
adbac19618
1 changed files with 3 additions and 1 deletions
|
|
@ -33,7 +33,7 @@ from api.db.services.file_service import FileService
|
||||||
from api.db.services.knowledgebase_service import KnowledgebaseService
|
from api.db.services.knowledgebase_service import KnowledgebaseService
|
||||||
from api.db.services.llm_service import LLMBundle
|
from api.db.services.llm_service import LLMBundle
|
||||||
from api.db.services.tenant_llm_service import TenantLLMService
|
from api.db.services.tenant_llm_service import TenantLLMService
|
||||||
from api.db.services.task_service import TaskService, queue_tasks
|
from api.db.services.task_service import TaskService, queue_tasks, cancel_all_task_of
|
||||||
from api.db.services.dialog_service import meta_filter, convert_conditions
|
from api.db.services.dialog_service import meta_filter, convert_conditions
|
||||||
from api.utils.api_utils import check_duplicate_ids, construct_json_result, get_error_data_result, get_parser_config, get_result, server_error_response, token_required, \
|
from api.utils.api_utils import check_duplicate_ids, construct_json_result, get_error_data_result, get_parser_config, get_result, server_error_response, token_required, \
|
||||||
request_json
|
request_json
|
||||||
|
|
@ -839,6 +839,8 @@ async def stop_parsing(tenant_id, dataset_id):
|
||||||
return get_error_data_result(message=f"You don't own the document {id}.")
|
return get_error_data_result(message=f"You don't own the document {id}.")
|
||||||
if int(doc[0].progress) == 1 or doc[0].progress == 0:
|
if int(doc[0].progress) == 1 or doc[0].progress == 0:
|
||||||
return get_error_data_result("Can't stop parsing document with progress at 0 or 1")
|
return get_error_data_result("Can't stop parsing document with progress at 0 or 1")
|
||||||
|
# Send cancellation signal via Redis to stop background task
|
||||||
|
cancel_all_task_of(id)
|
||||||
info = {"run": "2", "progress": 0, "chunk_num": 0}
|
info = {"run": "2", "progress": 0, "chunk_num": 0}
|
||||||
DocumentService.update_by_id(id, info)
|
DocumentService.update_by_id(id, info)
|
||||||
settings.docStoreConn.delete({"doc_id": doc[0].id}, search.index_name(tenant_id), dataset_id)
|
settings.docStoreConn.delete({"doc_id": doc[0].id}, search.index_name(tenant_id), dataset_id)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue