เมื่อไหร่ที่ควรทำ Quarantine ให้กับ Browser Profile
การทำ Browser Profile Lease ช่วยแก้ปัญหาเรื่อง Concurrency โดยจะบอกว่า Worker ตัวไหนเป็นเจ้าของ Profile นั้นอยู่
แต่หลังจากเกิดความล้มเหลวในการทำ Automation คุณจะพบกับคำถามใหม่
Profile นี้ยังปลอดภัยที่จะนำกลับมาใช้ใหม่หรือไม่?
ความเป็นเจ้าของ (Ownership) และความสมบูรณ์ (Health) นั้นเป็นคนละเรื่องกัน Worker สามารถคืน Lease ได้ในขณะที่ทิ้ง Profile ไว้ในสถานะที่ไม่ทราบแน่ชัด Profile นั้นอาจมีคุกกี้ใหม่, Token ที่เปลี่ยนไป หรือฟอร์มที่กรอกค้างไว้
หากคุณส่ง Profile นั้นให้ Worker ตัวถัดไปทันที พวกเขาจะได้รับผลกระทบจากความเสียหายนั้นไปด้วย
นี่คือเหตุผลที่คุณต้องมีสถานะ Quarantine
Quarantine คือสถานะหลังเกิดความล้มเหลว (Post-failure state) ซึ่งหมายความว่าคุณไม่สามารถเชื่อถือบัญชี, Session หรือสภาพแวดล้อม (Environment) นั้นได้อีกต่อไป
ในการทำ Browser Automation, Profile เป็นมากกว่าแค่โฟลเดอร์ เพราะมันประกอบไปด้วย: • Cookies และ local storage • สถานะการเข้าสู่ระบบและสิทธิ์การใช้งาน (Permissions) • การตั้งค่า Proxy และภาษา • ประวัติการทำงานล่าสุด
หากการทำงานล้มเหลวหลังจากเข้าสู่ระบบแล้ว ความเสี่ยงจะสูงมาก คุณอาจต้องเจอกับการ Redirect ที่ไม่คาดคิด, หน้าต่างยืนยันตัวตน (Verification prompts) หรือ Session ที่หมดอายุ
อย่าทำ Quarantine กับทุกความล้มเหลว คุณไม่จำเป็นต้องทำหาก:
- Browser ไม่เคยถูกเปิดขึ้นมาเลย
- Profile ไม่เคยถูกเปิดใช้งาน
- Worker ล้มเหลวก่อนที่จะมีการทำ Lease
- การทำงานนั้นเข้าถึงแค่หน้าเว็บสาธารณะเท่านั้น
- Browser ปิดตัวลงอย่างสมบูรณ์
การทำ Quarantine มีความสำคัญอย่างยิ่งเมื่อ:
- Worker ค้างหรือพัง (Crash) หลังจากเปิด Profile แล้ว
- การทำงานเข้าถึงพื้นที่ที่ต้องมีการยืนยันตัวตน (Authenticated area)
- สถานะ Session หรือ Cookies มีการเปลี่ยนแปลง
- ความล้มเหลวเกิดขึ้นใกล้กับ Action ที่ไม่ใช่ Idempotent (เช่น การกดส่งฟอร์ม)
- Proxy หรือภูมิภาค (Region) เปลี่ยนแปลงระหว่างการทำงาน
- หลักฐานที่พบไม่เพียงพอ
Scheduler แบบธรรมดาจะตรวจสอบแค่ว่า Profile ถูกล็อกหรือปลดล็อกเท่านั้น แต่ระบบระดับมืออาชีพจะใช้สถานะที่หลากหลายกว่านี้: • Available: พร้อมใช้งาน • Leased: กำลังถูกใช้งาน • Cooldown: ต้องการการพักระยะสั้น • Quarantined: อยู่ในสภาวะไม่แน่นอนเนื่องจากความล้มเหลว • Needs Review: ต้องรอการตรวจสอบโดยมนุษย์ • Retired: เลิกใช้งาน (ไม่นำกลับมาใช้ใหม่)
Profile ที่ถูก Quarantine ต้องนำไปสู่การตัดสินใจ ไม่ควรเป็นแค่พื้นที่พักข้อมูลที่ถูกลืม ควรใช้มันเพื่อบันทึก Profile ID, URL ล่าสุด, ภาพหน้าจอ (Screenshot) และสาเหตุของข้อผิดพลาด
เลิกปฏิบัติกับสภาพแวดล้อมของบัญชีที่ล้มเหลวเสมือนว่าเป็นข้อมูลนำเข้าที่สะอาด (Clean inputs) การทำ Lease ช่วยป้องกันการทำงานที่ชนกัน (Collisions) ส่วนการทำ Quarantine ช่วยป้องกันความล้มเหลวที่เกิดขึ้นต่อเนื่องกันเป็นทอดๆ
Source: https://dev.to/web4browser/when-a-browser-profile-should-be-quarantined-after-automation-failure-gpk