CI / docs-check (push) Canceled after 0s
CI / backend-test (push) Canceled after 0s
CI / service-test (push) Canceled after 0s
CI / frontend-test (push) Canceled after 0s
CI / rust-core (push) Canceled after 0s
CI / docs-check (pull_request) Canceled after 0s
CI / backend-test (pull_request) Canceled after 0s
CI / service-test (pull_request) Canceled after 0s
CI / frontend-test (pull_request) Canceled after 0s
CI / rust-core (pull_request) Canceled after 0s
31 lines
749 B
Python
31 lines
749 B
Python
"""进程本地检索活动,由搜索、RAG 和 Agent 调用者共享。"""
|
|
import asyncio
|
|
from functools import wraps
|
|
|
|
active = 0
|
|
completed = 0
|
|
failed = 0
|
|
cancelled = 0
|
|
|
|
|
|
def track_search(operation):
|
|
@wraps(operation)
|
|
async def wrapped(self, request):
|
|
global active, completed, failed, cancelled
|
|
if request.mode == 'fts':
|
|
return await operation(self, request)
|
|
active += 1
|
|
try:
|
|
result = await operation(self, request)
|
|
completed += 1
|
|
return result
|
|
except asyncio.CancelledError:
|
|
cancelled += 1
|
|
raise
|
|
except Exception:
|
|
failed += 1
|
|
raise
|
|
finally:
|
|
active -= 1
|
|
return wrapped
|