एक्सटेंशन सेवा देने वाले लोग, तब तक ऐक्टिव रह सकते हैं, जब तक उन्हें इवेंट मिलते रहेंगे. इससे, एक्सटेंशन सेवाओं के कर्मचारियों पर भरोसा बढ़ता है. हालांकि, इसमें एक समस्या है जिससे आपको बचना चाहिए.
Chrome 110 (7 फ़रवरी, 2023 से बीटा वर्शन में) से, एक्सटेंशन के सेवा वर्कर तब तक चालू रहते हैं, जब तक उन्हें इवेंट मिलते रहते हैं. इससे, एक्सटेंशन सर्विस वर्कर्स को लागू करने के पिछले तरीके में, समय से जुड़ी समस्या ठीक हो जाती है. जब इवेंट की सूची में नए इवेंट होते थे, तब टाइम आउट हो सकते थे. साथ ही, टाइम आउट की वजह से एसिंक्रोनस तरीके से होने वाले काम में रुकावट आ सकती थी. इस सुधार से, एक्सटेंशन सेवा देने वाले लोगों के लिए, ज़्यादा से ज़्यादा पांच मिनट का समयसीमा वाला नियम हट जाता है.
इस लेख में बताया गया है कि इन व्यवहारों में क्या बदलाव हुए हैं.
बैकग्राउंड
एक्सटेंशन सेवा वर्कर, ज़्यादातर वेब सेवा वर्कर की तरह काम करते हैं. हालांकि, सेवा वर्कर इवेंट के अलावा, एक्सटेंशन सेवा वर्कर एक्सटेंशन इवेंट भी सुन सकते हैं. सामान्य सर्विस वर्कर इवेंट, सर्विस वर्कर के लाइफ़टाइम को बढ़ाते हैं. हालांकि, 110 वर्शन रिलीज़ होने से पहले, एक्सटेंशन प्लैटफ़ॉर्म के सिर्फ़ कुछ इवेंट, एक्सटेंशन सर्विस वर्कर को चालू रखते थे.
आम तौर पर, Chromium इनमें से किसी एक शर्त पूरी होने के बाद, सेवा वर्कर को बंद कर देता है:
- सेवा वर्कर को तीस सेकंड से ज़्यादा समय से कोई इवेंट नहीं मिला है और लंबे समय से चल रहे कोई टास्क पूरा नहीं हुआ है. अगर उस दौरान किसी सेवा वर्कर को कोई इवेंट मिलता है, तो आइडल टाइमर हटा दिया जाता है.
- लंबे समय से चल रहे किसी टास्क को पूरा होने में पांच मिनट से ज़्यादा समय लग गया है और पिछले तीस सेकंड में कोई इवेंट नहीं मिला है.
अगर कोई नया service worker इवेंट, इंतज़ार में रहने के टाइमर या लंबे समय तक चलने वाले टास्क के टाइमर की समयसीमा खत्म होने से पहले मिलता है, तो टाइमर रीसेट हो जाएंगे और service worker के लाइफ़टाइम में बढ़ोतरी हो जाएगी.
माफ़ करें, यह सुविधा एक्सटेंशन इवेंट पर लागू नहीं होती. एक्सटेंशन इवेंट, एक्सटेंशन सेवा वर्कर्स को चालू कर सकते हैं और इवेंट पूरा होने तक उसे चालू रख सकते हैं. हालांकि, यह 30 सेकंड के इंऐक्टिव टाइमर को बढ़ा नहीं सकता. इसका मतलब है कि एक्सटेंशन के आखिरी इवेंट के पूरा होने के बाद, एक्सटेंशन के सेवा वर्कर को कभी भी बंद किया जा सकता है. भले ही, ब्राउज़र ने अभी-अभी एक्सटेंशन को नया इवेंट भेजा हो.
क्या बदलाव हुए हैं
Chrome 110 में, सभी इवेंट, निष्क्रिय रहने का टाइमर रीसेट करते हैं. साथ ही, अगर कोई इवेंट बाकी है, तो निष्क्रिय रहने का टाइम आउट नहीं होगा. दूसरे शब्दों में, अगर कोई अनचाहा रुकावट नहीं आती है, तो एक्सटेंशन सेवा वर्कर्स तब तक चालू रहेंगे, जब तक वे इवेंट को प्रोसेस कर रहे होंगे. इसके अलावा, chrome.storage.local.get()
जैसे एक्सटेंशन के लिए बने Chrome API के कॉल करने पर, कोई गतिविधि न होने पर ब्राउज़र बंद होने का समय रीसेट हो जाएगा. खास तौर पर:
- कोई गतिविधि न होने पर, सेवा वर्कर 30 सेकंड के बाद बंद हो जाता है. (कोई इवेंट मिलने या एक्सटेंशन एपीआई को कॉल करने पर, यह टाइमर रीसेट हो जाता है).
- अगर किसी इवेंट या एपीआई कॉल जैसे किसी एक अनुरोध को प्रोसेस करने में पांच मिनट से ज़्यादा समय लगता है, तो सेवा वर्कर बंद हो जाता है.
नेटिव मैसेजिंग जैसे कुछ एपीआई, 'कंटिन्यूअल कनेक्टिविटी' की सुविधा देते हैं. इसकी मदद से, इन दोनों टाइमर को रद्द किया जा सकता है.
हम अब भी यह पक्का करने के लिए काम कर रहे हैं कि एक्सटेंशन सेवा के कर्मचारी, लंबे समय से चल रहे काम को बंद किए बिना ही, जब भी हो सके, उन्हें नौकरी से निकाल दिया जाए. संसाधनों का ध्यान रखने वाले एक्सटेंशन सेवा देने वाले लोगों को हमेशा ज़्यादा से ज़्यादा फ़ायदा देना चाहिए. इसके अलावा, एक्सटेंशन को स्थिति को बनाए रखकर, अचानक खत्म होने की स्थिति के लिए तैयार रहना चाहिए. इससे, ब्राउज़र को उपयोगकर्ता के जबरदस्ती बंद करने जैसी अप्रत्याशित घटनाओं से बचा जा सकता है.
Unsplash पर Paula Guerreiro की फ़ोटो