मैंने एक Google ऐप इंजन एप्लिकेशन लिखा है जो प्रोग्रामिक रूप से HTML कोड का एक समूह उत्पन्न करता है जो वास्तव में मेरे सिस्टम में लॉग इन करने वाले प्रत्येक उपयोगकर्ता के लिए एक ही आउटपुट होता है, और मुझे पता है कि यह होने वाला है जब कोड उत्पादन में जाता है तो कुशल। इसलिए, मैं जेनरेट किए गए पृष्ठों को कैश करने का सबसे अच्छा तरीका जानने का प्रयास कर रहा हूं।Google ऐप इंजन - कैशिंग ने HTML उत्पन्न किया
सबसे संभावित विकल्प पृष्ठों को उत्पन्न करना और उन्हें डेटाबेस में लिखना है, और उसके बाद किसी दिए गए पृष्ठ के लिए डेटाबेस को अंतिम बार अपडेट किए जाने के बाद डेटाबेस के समय को ऑपरेशन करना है। फिर, यदि डेटाबेस डेटाबेस (अंतिम एचटीएमएल अनुरोध के लिए) के आखिरी डालने से नया है, तो नया HTML जेनरेट और सर्विस किया जाएगा, और डेटाबेस में कैश किया जाएगा। यदि कोड डेटाबेस में अंतिम डालने से पुराना है, तो मैं डेटाबेस से सीधे HTML प्राप्त करूँगा और इसकी सेवा करूंगा (इसलिए HTML उत्पन्न करने के सभी CPU अपशिष्ट से बचें)। मैं न केवल लोड समय को कम करने के लिए देख रहा हूं, बल्कि सीपीयू उपयोग को कम करने के लिए।
हालांकि, मेरे पास एक मुद्दा यह है कि मैं यह नहीं समझ सकता कि प्रोग्राम प्रोग्राम को कैसे अपलोड किया जाए जब ऐप इंजन पर अपलोड किए गए कोड का संस्करण अपडेट किया गया था।
मैं इस दृष्टिकोण पर उत्पन्न सुझावों के लिए खुला हूं, या जेनरेट किए गए एचटीएमएल को कैश करने के लिए अन्य दृष्टिकोण।
ध्यान दें कि जब इस स्थिति में memcache मदद कर सकता है, तो मेरा मानना है कि यह अंतिम समाधान नहीं है क्योंकि कोड को अद्यतन होने पर मुझे वास्तव में केवल HTML उत्पन्न करने की आवश्यकता होती है (जैसा कि हर बार memcache समाप्त हो जाता है)।
लेकिन ... यही यादगार है! जब तक एचटीएमएल उत्पन्न नहीं करता है, वास्तव में, वास्तव में लंबा समय लगता है, तो आप इसे ओवरइंक कर रहे हैं। –
इसके अलावा, ऐसा लगता है कि ऐप इंजन मेमकेचे मॉडल केवल डेटा पीढ़ी तक पहुंचता है, कोड जनरेशन नहीं: से: http://code.google.com/appengine/docs/python/memcache/usingmemcache.html - मेमकैच आम तौर पर होता है निम्नलिखित पैटर्न के साथ प्रयोग किया जाता है: एप्लिकेशन को उपयोगकर्ता या एप्लिकेशन से एक क्वेरी प्राप्त होती है। एप्लिकेशन जांचता है कि उस क्वेरी को संतुष्ट करने के लिए आवश्यक डेटा memcache में है या नहीं। यदि डेटा memcache में है, तो एप्लिकेशन उस डेटा का उपयोग करता है। यदि डेटा memcache में नहीं है, तो एप्लिकेशन डेटास्टोर से पूछताछ करता है और परिणामों को भविष्य के अनुरोधों के लिए memcache में संग्रहीत करता है। –
@Alexander - आप जो कुछ भी चाहते हैं उसे याद कर सकते हैं, जो वे उल्लेख कर रहे हैं वह सामान्य उपयोग केस है। –