Quản lý Dataset: Thử lại (Retry)

Mô tả Tổng quan

Tính năng Quản lý Dataset cung cấp khả năng quản trị để duy trì và quản lý các dataset phục vụ phân tích sản phẩm. Chức năng quan trọng là khả năng thử lại (retry) việc phân tích dataset khi các lần trước thất bại hoặc kết quả chưa đầy đủ, đảm bảo tính tin cậy và đầy đủ của dữ liệu cho mục đích phân tích.

Tính năng hướng tới quản trị viên và nhà phân tích cần đảm bảo chất lượng và tính sẵn sàng của dataset. Cho phép khôi phục khỏi sự cố xử lý mà không cần tạo lại dataset từ đầu.

Swagger Link

API: Retry Dataset API

Tài liệu Tình huống

Trường hợp 1: Thử lại phân tích Dataset

Mô tả

Người dùng khởi tạo thử lại quy trình phân tích cho một dataset đã gặp sự cố xử lý trước đó.

Sơ đồ Trình tự

sequenceDiagram
    participant User
    participant API as WishlistDatasetController
    participant Service as ProductAnalysisService
    participant Repo as WishlistDatasetHistoryRepository
    participant Auth as Authentication
    participant JP as JP API

    Note over User,JP: Bước 1: Yêu cầu Retry Dataset
    User->>API: GET /api/v1/general/{wldh_slug}/retry
    
    Note over API,Repo: Bước 2: Xác thực Dataset
    API->>Repo: findBySlug(wldh_slug)
    Repo-->>API: wishlistDatasetHistory
    
    Note over API,Auth: Bước 3: Xác thực quyền
    API->>Auth: get_logged_in_user()
    Auth-->>API: user
    API->>API: Kiểm tra user thuộc cùng group
    
    Note over API,Service: Bước 4: Khởi tạo Retry
    API->>Service: retryDataset(wishlistDatasetHistory, dataset_id)
    Service->>JP: Cập nhật trạng thái và đưa vào hàng đợi xử lý lại
    JP-->>Service: Kết quả
    
    Note over API,User: Bước 5: Trả về phản hồi
    API-->>User: 200 OK (Success message)

Các bước

Bước 1: Yêu cầu Retry

  • Mô tả: Gửi yêu cầu thử lại phân tích dataset
  • Yêu cầu: GET /api/v1/general/{wldh_slug}/retry
  • Tham số:
    • Đường dẫn: wldh_slug - định danh duy nhất của lịch sử dataset

Bước 2: Xác thực Dataset

  • Mô tả: Hệ thống xác thực dataset tồn tại
  • Hành động: Tìm lịch sử dataset theo slug trong repository
  • Lỗi tiềm ẩn: Dataset không tìm thấy

Bước 3: Xác thực Quyền

  • Mô tả: Xác thực người dùng có quyền retry dataset
  • Hành động: Kiểm tra user đăng nhập thuộc cùng group với dataset
  • Lỗi tiềm ẩn: Không có quyền (Unauthorized)

Bước 4: Khởi tạo Retry

  • Mô tả: Khởi chạy quy trình retry cho dataset
  • Hành động: Gọi service retry dataset
  • Thao tác thực hiện:
    • Reset trạng thái xử lý dataset
    • Xóa cờ lỗi trước đó
    • Đưa dataset vào hàng đợi xử lý lại
    • Cập nhật thời gian

Bước 5: Trả về phản hồi

  • Mô tả: Trả về kết quả retry
  • Phản hồi:
    • Thành công: 200 OK với thông điệp thành công
    • Lỗi: Mã lỗi và thông điệp phù hợp

Bảng/Trường liên quan

Xem: Analysis API Specification

Xử lý Lỗi

  • Log

    • Ghi log thất bại retry dataset
  • Chi tiết Lỗi:

    Thông báo Mô tả
    404 "Dataset not found" Khi slug dataset không tồn tại
    404 "Wishlist group not found" Không tìm thấy group tương ứng
    403 "Unauthorized access" User không thuộc cùng group với dataset
    500 "Failed to retry dataset" Thất bại kỹ thuật khi retry
    500 Lỗi chung kèm thông điệp ngoại lệ Lỗi bất ngờ khi xử lý

Ghi chú bổ sung

  • Chỉ retry khi cần thiết vì tốn tài nguyên
  • Nhiều lần retry liên tiếp có thể chỉ ra vấn đề dữ liệu gốc
  • Cân nhắc thời gian chờ giữa các lần retry cho cùng dataset
  • Hệ thống lưu lịch sử các lần retry phục vụ audit và xử lý sự cố
  • Retry không thay đổi nội dung dữ liệu gốc, chỉ xử lý lại dữ liệu hiện có