c# - Cached item never expiring -
मेरे पास एक वर्ग है जिसमें निम्न गुण हैं:
सार्वजनिक शब्दकोश & lt; स्ट्रिंग, इंट & gt ; टिप्पणी की गई {{string cacheKey = "टिप्पणी की गई" प्राप्त करें; HttpContext c = HttpContext.Current; यदि (सी। कैचे [कैचकी] == नल) {c.cache.indert (कैशकी, नया शब्दकोश & lt; स्ट्रिंग, इंट एण्ड (), रिक्त, डेटटाइम.यूटीसीएनओ। एडसेंकेंड (30), सिस्टम। वेब। कैशिंग। नो स्लिइडिंग एस्पिरेशन, कैश इटैम प्रियरियरी। हाई, रिक्त); C.Trace.Warn ("नई कैश आइटम:" + cacheKey); } वापसी (शब्दकोश & lt; स्ट्रिंग, एट एंड जी;) c.Cache [cacheKey]; } सेट {HttpContext.Current.Cache ["CommentCounts"] = मूल्य; }}
ऐसा लगता है कि ट्रेस स्टेटमेंट केवल एक बार चलाता है, और कैश आइटम की समय सीमा समाप्त होने के बाद प्रत्येक 30 सेकंड नहीं। एकमात्र तरीका मैं इसे कैश्ड आइटम को ताज़ा करने के लिए प्राप्त कर सकता हूं एक कोड मौका बनाने और परियोजना को पुनर्निर्माण करना, जो स्पष्ट रूप से आदर्श से कम है।
मुझे क्या याद आ रहा है? पहले से धन्यवाद ...
संपत्ति का सेट
हिस्सा शायद है कारण - कैश ["कुंजी"] = मान
कॉल करने के बराबर है कैश.इन्सेर्ट
के साथ नोआसोल्यूटएक्जीरेशन, नोस्लाइडिंग एसिपरेशन
जिसका अर्थ है कि यह कभी भी समाप्त नहीं हो जाता है सही समाधान ऐसा दिखेगा:
सार्वजनिक शब्दकोश & lt; स्ट्रिंग, इंट & gt; CommentCounts {get {const स्ट्रिंग कैश} = "टिप्पणी की गई"; HttpContext c = HttpContext.Current; यदि (सी। कैचे [कैचकी] == नल) टिप्पणी कैंब्रिज = नया शब्दकोश & lt; स्ट्रिंग, इंट & gt; (); वापसी (शब्दकोश & lt; स्ट्रिंग, इंट & gt;) c.Cache [cacheKey]; } सेट {const स्ट्रिंग कैशकी = "टिप्पणी की गई"; C.Cache.Insert (cacheKey, value, null, DateTime.UtcNow.AddSeconds (30), सिस्टम। Web.Caching.Cache.No। स्लिपिंग एस्पिरेशन, कैशइस्टम प्रीरीरिटी। हाई, रिक्त); C.Trace.Warn ("नई कैश आइटम:" + cacheKey); }}
Comments
Post a Comment