𝗪𝗵𝗲𝗻 𝘁𝗼 𝗤𝘂𝗮𝗿𝗮𝗻𝘁𝗶𝗻𝗲 𝗮 𝗕𝗿𝗼𝘄𝘀𝗲𝗿 𝗣𝗿𝗼𝗳𝗶𝗹𝗲 -> 𝗞𝗵𝗶 𝗻à𝗼 𝗰ầ𝗻 𝗰á𝗰𝗵 𝗹𝘆 𝗺ộ𝘁 𝗵ồ 𝘀ơ 𝘁𝗿ì𝗻𝗵 𝗱𝘂̛̣𝗻𝗴

Việc thuê hồ sơ trình duyệt (browser profile lease) giúp giải quyết vấn đề đồng thời (concurrency). Nó cho bạn biết worker nào đang sở hữu một hồ sơ.

Nhưng sau một lỗi tự động hóa, bạn sẽ đối mặt với một câu hỏi mới.

Liệu hồ sơ này có còn an toàn để tái sử dụng không?

Quyền sở hữu và tình trạng sức khỏe (health) là hai khái niệm khác nhau. Một worker có thể giải phóng quyền thuê trong khi để lại hồ sơ ở một trạng thái không xác định. Hồ sơ có thể có cookie mới, token đã thay đổi hoặc các biểu mẫu chưa hoàn tất.

Nếu bạn giao ngay hồ sơ đó cho worker tiếp theo, họ sẽ phải gánh chịu những lỗi đó.

Đây là lý do tại sao bạn cần một trạng thái cách ly (quarantine state).

Cách ly là một trạng thái sau khi xảy ra lỗi. Nó có nghĩa là bạn không còn tin tưởng vào tài khoản, phiên làm việc (session) hoặc môi trường đó nữa.

Trong tự động hóa trình duyệt, một hồ sơ không chỉ đơn thuần là một thư mục. Nó mang theo: • Cookies và local storage • Trạng thái đăng nhập và quyền hạn • Cài đặt proxy và ngôn ngữ • Lịch sử tác vụ gần đây

Nếu một lượt chạy thất bại sau khi đăng nhập, rủi ro là rất cao. Bạn có thể gặp phải các lệnh chuyển hướng không mong muốn, các yêu cầu xác minh hoặc các phiên làm việc đã hết hạn.

Đừng cách ly mọi lỗi xảy ra. Bạn không cần làm vậy nếu:

  • Trình duyệt chưa bao giờ được khởi chạy
  • Hồ sơ chưa bao giờ được mở
  • Worker gặp lỗi trước khi thực hiện thuê (lease)
  • Lượt chạy chỉ tương tác với các trang công khai
  • Trình duyệt đóng một cách bình thường

Cách ly là cực kỳ quan trọng khi:

  • Worker bị treo sau khi mở hồ sơ
  • Lượt chạy đã truy cập vào khu vực yêu cầu xác thực
  • Trạng thái phiên hoặc cookie đã thay đổi
  • Lỗi xảy ra gần một hành động không có tính lũy đẳng (non-idempotent) (như gửi một biểu mẫu)
  • Proxy hoặc vùng (region) thay đổi trong quá trình chạy
  • Bằng chứng về lỗi không đầy đủ

Một bộ lập lịch đơn giản chỉ kiểm tra xem hồ sơ đang bị khóa hay được mở khóa. Một hệ thống chuyên nghiệp sử dụng nhiều trạng thái hơn: • Available: Sẵn sàng để làm việc • Leased: Đang được sử dụng • Cooldown: Cần một khoảng nghỉ ngắn • Quarantined: Trạng thái không chắc chắn do lỗi gây ra • Needs Review: Yêu cầu con người kiểm tra • Retired: Không sử dụng lại nữa

Một hồ sơ bị cách ly phải đưa ra được một quyết định. Nó không nên là một khu vực lưu trữ bị lãng quên. Hãy sử dụng nó để ghi lại ID hồ sơ, URL cuối cùng, ảnh chụp màn hình và lý do lỗi.

Đừng coi các môi trường tài khoản bị lỗi là các đầu vào sạch. Việc thuê (lease) giúp ngăn chặn sự xung đột. Việc cách ly (quarantine) giúp ngăn chặn một chuỗi các lỗi liên tiếp.

Source: https://dev.to/web4browser/when-a-browser-profile-should-be-quarantined-after-automation-failure-gpk