मल्टी-वर्कर ऑटोमेशनसाठी ब्राउझर प्रोफाइल लीज डिझाइन करणे
Stale lock ही रिकव्हरीची समस्या आहे. प्रोफाइल लीज ही रनटाइम डिझाइनची समस्या आहे.
बहुतेक लोकांना वाटते की दोन वर्कर्सना एकच ब्राउझर प्रोफाइल उघडण्यापासून रोखण्यासाठी लॉक फाईल पुरेशी आहे. जेव्हा तुम्ही स्केल करता, तेव्हा ही एक चूक ठरते.
लॉक फक्त प्रोफाइल व्यस्त आहे की नाही हे सांगते. प्रोफाइल वापरण्यासाठी सुरक्षित आहे की नाही, हे ते सांगत नाही.
जर एखादा वर्कर लॉगिन दरम्यान क्रॅश झाला, तर अकाउंटची स्थिती (state) अज्ञात असते. पुढचा वर्कर चुकीच्या पेजवर किंवा करप्टेड कुकीजसह सुरुवात करू शकतो. यामुळे 'सायलेंट फेलियर्स' (silent failures) होतात, जे डीबग करणे कठीण असते.
लीज ही केवळ लॉक नाही. हा तुमच्या शेड्युलर, वर्कर आणि प्रोफाइलमधील एक करार आहे.
एक चांगली लीज या प्रश्नांची उत्तरे देते:
- सध्या या प्रोफाइलचा मालक कोण आहे?
- कोणता विशिष्ट रन (run) याचा वापर करत आहे?
- या मालकीचा कालावधी कधी संपेल?
- जर वर्कर गायब झाला तर काय होईल?
एका किमान लीज रेकॉर्डमध्ये खालील गोष्टींचा समावेश असावा:
• profile_id आणि account_id
• worker_id आणि run_id
• proxy_id
• heartbeat_at (वर्कर सक्रिय आहे की नाही हे तपासण्यासाठी)
• last_safe_step (शेवटची ज्ञात चांगली स्थिती तपासण्यासाठी)
• release_policy
Time To Live (TTL) संपणे म्हणजे लॉक डिलीट करण्याची कमांड समजू नका. संपलेली लीज म्हणजे एक न सुटलेला शेवट आहे. एक 'क्लीन रिलीज' (clean release) म्हणजे स्पष्ट करता येण्याजोगा शेवट आहे.
जर वर्कर हार्टबीट्स (heartbeats) पाठवणे थांबवत असेल, तर ते प्रोफाइल आपोआप पुन्हा वापरू नका. त्याऐवजी प्रोफाइलला 'क्वारंटाईन' (quarantine) स्थितीत हलवा.
तुमच्या प्रोफाइल्ससाठी या स्थितींचा (states) वापर करा:
- Available: चेकआउटसाठी तयार.
- Leased: सध्या वापरात आहे.
- Stale: वर्कर रिपोर्टिंग थांबले आहे; स्थिती अज्ञात आहे.
- Review Required: मानवी निरीक्षणाची गरज आहे.
- Quarantined: क्लिअर होईपर्यंत वापरण्यासाठी असुरक्षित.
- Disabled: रोटेशनमधून बाहेर.
क्वारंटाईन करणे ही शिक्षा नाही. ती एक सुरक्षा यंत्रणा आहे. तुम्ही प्रोफाइल क्वारंटाईन केले पाहिजे जर:
- फॉर्म सबमिट करताना वर्कर क्रॅश झाला असेल.
- अंतिम URL अज्ञात असेल.
- रन दरम्यान प्रॉक्सी बदलली असेल.
- सिक्युरिटी प्रॉम्प्ट (security prompt) दिसला असेल.
लॉक प्रोफाइलला एकाच वेळी होणाऱ्या ॲक्सेसपासून वाचवते. लीज प्रोफाइलला असुरक्षित पुनरुपयोग (unsafe reuse) पासून वाचवते.
ब्राउझर प्रोफाइल्सना फेकून देण्यायोग्य फोल्डर्सप्रमाणे वागवणे थांबवा. त्यांना मॅनेज्ड अकाउंट एन्व्हायरनमेंटप्रमाणे (managed account environments) माना.
Source: https://dev.to/web4browser/designing-browser-profile-leases-for-multi-worker-automation-1bfa