tasks get their own module and list support
This commit is contained in:
parent
5921586bcf
commit
c1eb61a973
3 changed files with 31 additions and 12 deletions
|
|
@ -66,13 +66,3 @@ async def upload_context(request: Request, document_service, chat_service, sessi
|
|||
|
||||
return JSONResponse(response_data)
|
||||
|
||||
async def task_status(request: Request, task_service, session_manager):
|
||||
"""Get the status of an upload task"""
|
||||
task_id = request.path_params.get("task_id")
|
||||
user = request.state.user
|
||||
|
||||
task_status_result = task_service.get_task_status(user.user_id, task_id)
|
||||
if not task_status_result:
|
||||
return JSONResponse({"error": "Task not found"}, status_code=404)
|
||||
|
||||
return JSONResponse(task_status_result)
|
||||
11
src/main.py
11
src/main.py
|
|
@ -30,7 +30,7 @@ from session_manager import SessionManager
|
|||
from auth_middleware import require_auth, optional_auth
|
||||
|
||||
# API endpoints
|
||||
from api import upload, search, chat, auth, connectors
|
||||
from api import upload, search, chat, auth, connectors, tasks
|
||||
|
||||
print("CUDA available:", torch.cuda.is_available())
|
||||
print("CUDA version PyTorch was built with:", torch.version.cuda)
|
||||
|
|
@ -133,7 +133,14 @@ def create_app():
|
|||
|
||||
Route("/tasks/{task_id}",
|
||||
require_auth(services['session_manager'])(
|
||||
partial(upload.task_status,
|
||||
partial(tasks.task_status,
|
||||
task_service=services['task_service'],
|
||||
session_manager=services['session_manager'])
|
||||
), methods=["GET"]),
|
||||
|
||||
Route("/tasks",
|
||||
require_auth(services['session_manager'])(
|
||||
partial(tasks.all_tasks,
|
||||
task_service=services['task_service'],
|
||||
session_manager=services['session_manager'])
|
||||
), methods=["GET"]),
|
||||
|
|
|
|||
|
|
@ -168,6 +168,28 @@ class TaskService:
|
|||
"files": file_statuses
|
||||
}
|
||||
|
||||
def get_all_tasks(self, user_id: str) -> list:
|
||||
"""Get all tasks for a user"""
|
||||
if user_id not in self.task_store:
|
||||
return []
|
||||
|
||||
tasks = []
|
||||
for task_id, upload_task in self.task_store[user_id].items():
|
||||
tasks.append({
|
||||
"task_id": upload_task.task_id,
|
||||
"status": upload_task.status.value,
|
||||
"total_files": upload_task.total_files,
|
||||
"processed_files": upload_task.processed_files,
|
||||
"successful_files": upload_task.successful_files,
|
||||
"failed_files": upload_task.failed_files,
|
||||
"created_at": upload_task.created_at,
|
||||
"updated_at": upload_task.updated_at
|
||||
})
|
||||
|
||||
# Sort by creation time, most recent first
|
||||
tasks.sort(key=lambda x: x["created_at"], reverse=True)
|
||||
return tasks
|
||||
|
||||
def shutdown(self):
|
||||
"""Cleanup process pool"""
|
||||
if hasattr(self, 'process_pool'):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue