एक्सटेंशन सर्विस वर्कर की लाइफ़टाइम गतिविधि

अब एक्सटेंशन सर्विस वर्कर, इवेंट मिलने के दौरान भी ऐक्टिव रह सकते हैं. इससे एक्सटेंशन सेवा देने वाले कर्मचारियों की विश्वसनीयता बढ़ जाती है, लेकिन इसमें एक कमी भी है, जिससे आपको बचना चाहिए.

Joe Medley
Joe Medley

Chrome 110 की शुरुआत से (7 फ़रवरी, 2023 से बीटा वर्शन में), एक्सटेंशन सर्विस वर्कर तब तक उपलब्ध रहेंगे, जब तक उन्हें इवेंट मिल रहे होते हैं. इससे एक्सटेंशन सर्विस वर्कर को लागू करने के दौरान, समय से जुड़ी समस्या ठीक हो जाती है. जब इवेंट की सूची में नए इवेंट मौजूद थे, तब टाइम आउट का विकल्प हो सकता था. साथ ही, जब टाइम आउट का इस्तेमाल हो रहा था, तब एसिंक्रोनस काम को छोटा कर दिया जाता था. इस सुधार से एक्सटेंशन सर्विस वर्कर के लिए ज़्यादा से ज़्यादा पांच मिनट की मुश्किल अवधि खत्म हो जाती है.

इस लेख में बताया गया है कि इन गतिविधियों में क्या बदलाव हुए हैं.

बैकग्राउंड

एक्सटेंशन सर्विस वर्कर ज़्यादातर वेब सर्विस वर्कर की तरह काम करते हैं. हालांकि, सर्विस वर्कर इवेंट के अलावा, एक्सटेंशन सर्विस वर्कर, एक्सटेंशन इवेंट को भी सुन सकते हैं. हालांकि, सामान्य सर्विस वर्कर इवेंट से सर्विस वर्कर के काम करने का समय बढ़ जाता है. हालांकि, 110 एक्सटेंशन प्लैटफ़ॉर्म के रिलीज़ होने से पहले कुछ ही एक्सटेंशन प्लैटफ़ॉर्म इवेंट की वजह से एक्सटेंशन सर्विस वर्कर ऐक्टिव रहता है.

आम तौर पर, Chromium इनमें से किसी एक शर्त के पूरा होने पर सर्विस वर्कर को बंद कर देता है:

  • सर्विस वर्कर को तीस सेकंड से ज़्यादा समय से कोई इवेंट नहीं मिला है और कोई भी बचे हुए लंबे काम नहीं चल रहे हैं. अगर इस दौरान किसी सर्विस वर्कर को कोई घटना होती है, तो 'इस्तेमाल न होने वाला टाइमर' हटा दिया जाता है.
  • लंबे समय से चल रहे एक टास्क को पूरा होने में पांच मिनट से ज़्यादा समय लगा है और पिछले तीस सेकंड में कोई इवेंट नहीं मिला है.

कुछ समय से इस्तेमाल में न होने वाले टाइमर या लंबे समय तक चलने वाले टास्क टाइमर के खत्म होने से पहले मिलने वाले नए सर्विस वर्कर इवेंट के बाद, टाइमर रीसेट हो जाएंगे. साथ ही, सर्विस वर्कर का लाइफ़टाइम बढ़ जाएगा.

माफ़ करें, यह व्यवहार एक्सटेंशन इवेंट पर लागू नहीं हुआ. एक्सटेंशन इवेंट, एक्सटेंशन सर्विस वर्कर को सक्रिय कर सकते हैं और इवेंट के पूरा होने तक उसे चालू रख सकते हैं, लेकिन इससे तीस सेकंड के इनऐक्टिव टाइमर को बढ़ाया नहीं जा सका. इसका मतलब यह है कि आखिरी एक्सटेंशन इवेंट पूरा होने के बाद, एक्सटेंशन सर्विस वर्कर को किसी भी समय खत्म किया जा सकता है. भले ही, ब्राउज़र ने एक्सटेंशन के लिए अभी-अभी एक नया इवेंट भेजा हो.

कौनसे बदलाव हुए हैं

Chrome 110 के बाद के वर्शन में, सभी इवेंट के लिए, कुछ समय तक इस्तेमाल में न होने के टाइमर को रीसेट किया जाता है. साथ ही, जिन इवेंट को मंज़ूरी मिलना बाकी है उनके लिए टाइम आउट नहीं होता. दूसरे शब्दों में, यह मानते हुए कि अचानक से कोई रुकावट नहीं आ रही है, एक्सटेंशन सर्विस वर्कर तब तक सुरक्षित रहेंगे, जब तक वे इवेंट को प्रोसेस कर रहे होंगे. इसके अलावा, खास Chrome API (एपीआई) जैसे chrome.storage.local.get() को कॉल करने पर, इस्तेमाल न होने के टाइम आउट को रीसेट कर दिया जाएगा. खास तौर पर:

  • सर्विस वर्कर 30 सेकंड की निष्क्रियता के बाद बंद हो जाता है. (कोई इवेंट मिलने या एक्सटेंशन एपीआई को कॉल करने से यह टाइमर रीसेट हो जाता है).
  • अगर किसी इवेंट या एपीआई कॉल जैसे किसी अनुरोध को प्रोसेस होने में पांच मिनट से ज़्यादा समय लगता है, तो सर्विस वर्कर खत्म हो जाता है.

नेटिव मैसेजिंग जैसे कुछ एपीआई, चालू रहने की बेहतर सुविधा देते हैं. इस वजह से, ये दोनों टाइमर रद्द हो जाते हैं.

हम लंबे समय से चल रहे काम को बंद किए बिना, जब भी संभव हो, एक्सटेंशन सर्विस वर्कर को खत्म करने के लिए काम कर रहे हैं. जब भी मुमकिन हो, तब रिसॉर्स देने वाले एक्सटेंशन सर्विस वर्कर हमेशा जनरेट होने चाहिए. इसके अलावा, एक्सटेंशन को चालू स्थिति के हिसाब से अचानक बंद होने के लिए तैयार होना चाहिए. यह ऐसे अनचाहे इवेंट से सुरक्षा देता है, जैसे कि उपयोगकर्ता को ब्राउज़र बंद करना पड़ता है.

Unस्प्लैश पर पाउला गुएरेइरो की फ़ोटो