💡 फ़ीचर स्पॉटलाइट: लगातार प्लगइन कैशिंग

💾 प्रदर्शन, विश्वसनीयता और नेटवर्क दक्षता के लिए कैशिंग

सिस्टम अब एक केंद्रीय, लगातार कैशिंग तंत्र (simple_plugin_cache) प्रदान करता है जिसे बाहरी नेटवर्क लोड (जैसे, मौसम, अनुवाद एपीआई) को कम करने और निष्पादन में तेजी लाने के लिए डिज़ाइन किया गया है। कैश निरंतर है, जिसका अर्थ है कि प्रविष्टियाँ सेवा पुनरारंभ होने तक जीवित रहती हैं।

लक्ष्य: नेटवर्क ट्रैफ़िक कम करें, एपीआई दुरुपयोग को रोकें, और बाहरी सेवा आउटेज के दौरान त्वरित फ़ॉलबैक प्रतिक्रियाएँ प्रदान करें।


1. बेसिक कैशिंग कार्यान्वयन (टीटीएल-संचालित)

किसी फ़ंक्शन के परिणाम को कैश करने के लिए, आपको तीन ब्लॉकों में मुख्य तर्क लागू करना होगा: चेक, निष्पादित, और स्टोर

1.1 आयात और विन्यास

आवश्यक आयात जोड़ें और अपनी प्लगइन स्क्रिप्ट में टाइम-टू-लाइव (टीटीएल) स्थिरांक को परिभाषित करें (उदाहरण के लिए, weather.py):

CODE_ब्लॉक_0

1.2 ‘निष्पादित’ ब्लॉक में कैशिंग लॉजिक

किसी भी नेटवर्क कॉल करने से पहले ‘निष्पादित’ फ़ंक्शन को पहले कैश्ड परिणाम को पुनः प्राप्त करने का प्रयास करना चाहिए।

CODE_ब्लॉक_1


2. उन्नत कैशिंग मोड

ए. स्थायी (अनन्त) कैशिंग

यदि कोई परिणाम कभी समाप्त नहीं होना चाहिए (उदाहरण के लिए, स्थिर कॉन्फ़िगरेशन लुकअप), तो ttl_thirds पैरामीटर को पूरी तरह से छोड़ दें।

CODE_ब्लॉक_2

बी. कैश कुंजी (key_args) आवश्यकताएँ

  • key_args एक टुपल होना चाहिए जिसमें परिणाम को परिभाषित करने वाले सभी वेरिएबल शामिल हों (उदाहरण के लिए, (शहर, भाषा, यूनिट_सिस्टम))।

  • कैशिंग तंत्र स्वचालित रूप से सामान्य गैर-JSON-क्रमबद्ध पायथन ऑब्जेक्ट्स, जैसे pathlib.Path को कुंजी पीढ़ी के लिए स्ट्रिंग में परिवर्तित करता है।