मल्टी-वर्कर ऑटोमेशन के लिए ब्राउज़र प्रोफाइल लीज़ डिज़ाइन करना
एक पुराना (stale) लॉक रिकवरी की समस्या है। एक प्रोफाइल लीज़ (lease) रनटाइम डिज़ाइन की समस्या है।
अधिकांश लोगों को लगता है कि दो वर्कर्स को एक ही ब्राउज़र प्रोफाइल खोलने से रोकने के लिए एक लॉक फ़ाइल ही काफी है। जब आप स्केल (scale) करते हैं, तो यह एक गलती है।
एक लॉक केवल यह बताता है कि क्या कोई प्रोफाइल व्यस्त है। यह आपको यह नहीं बताता कि क्या प्रोफाइल का उपयोग करना सुरक्षित है।
यदि कोई वर्कर लॉगिन के बीच में क्रैश हो जाता है, तो अकाउंट की स्थिति (state) अज्ञात होती है। अगला वर्कर गलत पेज पर या करप्टेड (corrupted) कुकीज़ के साथ शुरू हो सकता है। इससे साइलेंट फेलियर (silent failures) होते हैं जिन्हें डीबग करना कठिन होता है।
एक लीज़, लॉक से कहीं अधिक है। यह आपके शेड्यूलर (scheduler), आपके वर्कर और आपकी प्रोफाइल के बीच एक अनुबंध (contract) है।
एक अच्छी लीज़ इन सवालों के जवाब देती है:
- इस समय इस प्रोफाइल का मालिक कौन है?
- कौन सा विशिष्ट रन (run) इसका उपयोग कर रहा है?
- यह स्वामित्व (ownership) कब समाप्त होता है?
- यदि वर्कर गायब हो जाता है तो क्या होगा?
एक न्यूनतम लीज़ रिकॉर्ड में शामिल होना चाहिए: • 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: रोटेशन से बाहर।
क्वारंटाइन कोई सजा नहीं है। यह एक सुरक्षा तंत्र (safety mechanism) है। आपको प्रोफाइल को क्वारंटाइन करना चाहिए यदि:
- फॉर्म सबमिशन के दौरान वर्कर क्रैश हो गया।
- अंतिम URL अज्ञात है।
- रन के बीच में प्रॉक्सी बदल गई।
- कोई सुरक्षा प्रॉम्प्ट (security prompt) दिखाई दिया।
एक लॉक प्रोफाइल को एक साथ एक्सेस (simultaneous access) से बचाता है। एक लीज़ प्रोफाइल को असुरक्षित पुन: उपयोग से बचाती है।
ब्राउज़र प्रोफाइल को डिस्पोजेबल फोल्डर की तरह मानना बंद करें। उन्हें प्रबंधित अकाउंट वातावरण (managed account environments) की तरह मानें।
स्रोत: https://dev.to/web4browser/designing-browser-profile-leases-for-multi-worker-automation-1bfa