2012-02-02 18 views
7

क्या सभी उपयोगकर्ताओं के लिए सत्र कैश कुंजी साफ़ करने का कोई तरीका है?क्या सभी उपयोगकर्ताओं के लिए सत्र कैश कुंजी साफ़ करने का कोई तरीका है?

उदाहरण के लिए, मैं निम्नलिखित सत्र कुंजी "currentItem" के तहत वर्तमान में चयनित आइटम आइटम को संग्रहीत कर रहा हूं। वेबसाइट के प्रबंधन क्षेत्र में, मैं उस विशेष दुकान आइटम को हटाने का फैसला करता हूं। अब मैं सभी सत्रों में सभी "currentItem" कैश प्रविष्टियों को अमान्य करना चाहता हूं।

क्या ऐसा करने का कोई तरीका है?

मुझे एहसास है कि मैंने जो उदाहरण दिया है वह थोड़ा सा है, लेकिन यह बिंदु पूरी हो जाता है। मुझे संदेह है कि सभी समाधान मौजूदा उपयोगकर्ताओं को स्टोर करने के लिए सामान्य कैश एपीआई का उपयोग करना एक समाधान होगा। इस तरह जब आवश्यक हो तो मैं उन्हें अमान्य कर सकता था।

धन्यवाद

उत्तर

3

आप सभी उपयोगकर्ताओं
से सभी मौजूदा सत्र नहीं मिल सकता है (सच कहूं शब्दों में, you can, लेकिन मैं इस अनुशंसा नहीं करते हैं, और अभी भी आप केवल InProc sessions इस तरह से पढ़ सकते हैं)। Session केवल उपयोगकर्ता गाड़ी

  • इसी ID कैश
  • तब में आइटम जोड़ने के लिए के साथ आइटम जोड़ें की ID में

    • स्टोर:

      तो केवल एक चीज आप कर सकते हैं कुछ इस तरह है Cache, dependency to the Item

    • सेट करें, फिर Cache में पूरे कार्ट को बदलने के लिए ईवेंट उत्पन्न करें।
    • यदि आपको कुछ कारणों से Cache खाली किया जा रहा है, तो आपको आइटम को फिर से बनाने के बारे में सोचना चाहिए - आपको इस घटना के लिए CacheItemRemovedCallback callback प्रदान करना चाहिए।
  • +1

    +1 आप सभी सत्र प्राप्त करने के लिए [this] (http://weblogs.asp.net/imranbaloch/archive/2010/04/05/reading-all-users-session.aspx) आज़मा सकते हैं, लेकिन मैं किसी अन्य दृष्टिकोण को पसंद करते हैं। –

    +0

    @TimSchmelter यह केवल 'इनप्रोक' सत्र – VMAtm

    +0

    के साथ काम कर सकता है हां, यह एक कारण है कि अगर मुझे ऐसा करने की ज़रूरत नहीं है तो मैं उस पर भरोसा नहीं करूंगा। –

    0

    आप शॉपिंग कार्ट को डेटाबेस में ले जा सकते हैं। जब तक आपके पास बहुत तेजी से खरीदारी की प्रक्रिया नहीं है, या एक बेहद अनावश्यक वातावरण है, तो सत्र या कैश शायद पर्याप्त टिकाऊ नहीं होगा। चूंकि वे जारी नहीं हैं, इसलिए आपके पास खरीद निर्णय, दुर्घटना आदि का विश्लेषण करने का प्रत्यक्ष तरीका भी नहीं होगा

    आपकी सूची कितनी बार बदलती है, इस पर निर्भर करते हुए, आपको केवल यह सत्यापित करना होगा कि चेकआउट पर एक कार्ट आइटम उपलब्ध है । एक उपयोगकर्ता के रूप में, यह देखने के लिए मेरे लिए बहुत भ्रमित होगा कि एक आइटम मेरे कार्ट से "जादुई" गायब हो गया था या कीमत बदल गई थी। मेरी राय में स्पष्ट रूप से इसे कॉल करना बेहतर होगा।

    फिर से, डेटाबेस एक बेहतर समाधान होगा क्योंकि जब आप उत्पाद की वर्तमान परिभाषा के खिलाफ कार्ट में जोड़े गए थे तो आइटम की स्थिति को ट्रैक कर सकते थे।

    यदि आपको सत्र या कैश-आधारित समाधान का उपयोग करना चाहिए, तो @ VMAtm का प्रस्तावित समाधान एक वैध विकल्प है।

    +0

    धन्यवाद टिम। मैंने जो उदाहरण दिया वह मेरे लिए असली दुनिया नहीं है। मेरे पास एक शॉपिंग कार्ट नहीं है, या उस मामले के लिए भी एक दुकान नहीं है। यह सिर्फ चित्रण उद्देश्यों के लिए था। लेकिन मैं आपके सभी बिंदुओं को समझता हूं। धन्यवाद – gregpakes

    संबंधित मुद्दे

     संबंधित मुद्दे