मैं एक परिदृश्य में फंस गया हूं।ऑब्जेक्ट कैश के साथ कैश ऑब्जेक्ट .NET समाप्ति समय
अद्यतन:: मेरे कोड के नीचे की तरह है इसके बारे में नहीं कैसे डेटा कैश का उपयोग करने के, मैं पहले से ही यह काम कर रहे हैं और उसके उपयोग कर रहा हूँ उसके फैलते यह इतना विधि समाप्ति के समय के बीच फोन करना नहीं है के बारे में और बाहरी स्रोत से नए डेटा प्राप्त करने
object = (string)this.GetDataFromCache(cache, cacheKey);
if(String.IsNullOrEmpty(object))
{
// get the data. It takes 100ms
SetDataIntoCache(cache, cacheKey, object, DateTime.Now.AddMilliseconds(500));
}
तो उपयोगकर्ता कैश मारा और यदि आइटम समाप्त हो यह कॉल करता है और सेवा से डेटा प्राप्त और मामले में यह बचाने के यह से डेटा प्राप्त, टी वह समस्या है, जब कभी एक लंबित अनुरोध (अनुरोध जारी है) सेवा एक और अनुरोध भेजती है क्योंकि ऑब्जेक्ट समाप्त हो गया है। फाइनल में अधिकतम 2-3 कॉल/सेकेंड होना चाहिए और बाह्य सेवा में प्रति सेकंड 10-20 कॉल हैं।
क्या ऐसा करने का कोई इष्टतम तरीका है ताकि अन्य समय के अनुरोधों के बीच कोई संघर्ष न हो और फिर अपने कस्टम क्लास को सरणी और समय टिकटें आदि के साथ बनाया जा सके?
btw कैश है-
private void SetDataIntoCache(ObjectCache cacheStore, string cacheKey, object target, DateTime slidingExpirationDuration)
{
CacheItemPolicy cacheItemPolicy = new CacheItemPolicy();
cacheItemPolicy.AbsoluteExpiration = slidingExpirationDuration;
cacheStore.Add(cacheKey, target, cacheItemPolicy);
}
इसे जांचें। मुझे लगता है कि यह आपकी समस्या का समाधान करेगा। http://stackoverflow.com/questions/26581065/memory-cache-in-web-api –
नमस्ते, कम से कम जो मैं समझता हूं, मैं पहले से ही कक्षा का उपयोग कर रहा हूं और इसके कामकाजी जुर्माना, इसका उपयोग कैसे नहीं किया जा रहा है, यह भी नहीं है मेरे प्रश्न – kawafan
@ कवाफन को अपडेट किया गया, कारी द्वारा सुझाए गए उत्तर सही हैं, आलसी सिंगलटन निष्पादन का समर्थन करता है और यह लॉकिंग का प्रबंधन करता है। यह कक्षा या गणना करने के बारे में नहीं है, यह आलसी का उपयोग करने के बारे में है। –