Chính sách Timeout
Web Unlocker API áp dụng chính sách timeout hai tầng cho các trường hợp hết thời gian, được thiết kế để đảm bảo việc thực thi yêu cầu có thể kiểm soát, hệ thống ổn định và quản lý tài nguyên hiệu quả. Bằng cách thiết kế hai chiến lược timeout độc lập, API có thể mang lại hiệu năng mạnh mẽ trong các môi trường mạng phức tạp và các tình huống phân tích trang động, đồng thời tránh hiệu quả các sự cố hệ thống do cạn kiệt tài nguyên hoặc chờ đợi quá lâu.
1. Global Execution Timeout
Định nghĩa: Global execution timeout là chính sách giới hạn tổng thời gian thực thi tích lũy của tất cả các lệnh trong một yêu cầu API.
Ngưỡng Timeout: 180 giây
Phạm vi:
- Tất cả các thao tác thuộc chuỗi
waitXxx(chẳng hạn nhưwaitForSelectorhoặcwaitForEvent) trong tập lệnhinstructions. - Ngưỡng này bao trùm thời gian chờ tiềm năng trong quá trình thực thi lệnh, đảm bảo rằng các tác vụ chạy dài không chiếm dụng tài nguyên hệ thống vô thời hạn.
Hành vi khi Timeout:
- Khi tổng thời gian thực thi tích lũy đạt 180 giây, hệ thống sẽ buộc chấm dứt toàn bộ tiến trình yêu cầu API và trả về phản hồi lỗi timeout.
- Chính sách này đảm bảo giới hạn thời gian chạy cho API, ngăn chặn việc lạm dụng tài nguyên do các lệnh phức tạp hoặc cấu hình sai.
2. Page Load Timeout
Định nghĩa: Page load timeout tập trung vào giới hạn thời gian cho các giai đoạn khởi tạo trình duyệt và tải tài nguyên trang.
Ngưỡng Timeout: 30 giây (giá trị cố định)
Phạm vi:
- Quá trình khởi tạo instance trình duyệt (chẳng hạn như Puppeteer hoặc các trình điều khiển trình duyệt khác).
- Việc tải tài nguyên trang, bao gồm HTML, CSS, JavaScript và các tài nguyên mạng khác.
Hành vi khi Timeout:
- Nếu việc truy cập URL thất bại hoặc thời gian tải tài nguyên trang vượt quá 30 giây, hệ thống sẽ ngay lập tức trả về phản hồi lỗi mà không chờ đến global timeout.
- Chính sách này nhằm nhanh chóng nhận diện các trang đích không thể truy cập và tránh chờ đợi lâu đối với các tài nguyên không hợp lệ.
3. Quy tắc ưu tiên Timeout
- Page load timeout có mức ưu tiên cao hơn và có thể ngắt việc thực thi yêu cầu trước global timeout.
- Khi xảy ra timeout trong giai đoạn tải trang, hệ thống sẽ ngay lập tức chấm dứt tiến trình yêu cầu mà không chuyển sang giai đoạn thực thi lệnh tiếp theo.