2012-02-22 7 views
20

हमें रेल चर वर्ग @@ का उपयोग क्यों करना चाहिए? क्या इसके साथ कोई सुरक्षा छेड़छाड़ है। कृपया उत्तर दें क्योंकि मैं रेल के साथ नया हूं। और मैं उदाहरण चर @variable_name का उपयोग कर रहा हूं। मैंने @@variable_name एक बार कोशिश की।रेलवे में कक्षा चर @@ का उपयोग करने से हमें क्यों बचना चाहिए?

मैं जानता हूँ कि केवल के बारे में वर्ग चर रहा है, कक्षा चर वस्तु

लेकिन मैं सच में जानना हम रेल में @@ वर्ग वैरिएबल का उपयोग क्यों बचना चाहिए चाहते हैं के बीच साझा किए जाने योग्य है?

+0

जो जावा में 'स्थिर 'चर की तरह लगता है। इसका उपयोग करने का कोई कारण नहीं है, बस जागरूक रहें कि यह आपके उदाहरण से संबंधित नहीं है और असीमित रूप से बदल सकता है। – Chloe

उत्तर

41

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

भले ही आप जानबूझकर एक ही थ्रेडेड सर्वर में अपना ऐप चलाने के लिए प्रबंधन करते हैं, फिर भी कोई गारंटी नहीं है कि आपके ऐप को आपके क्लास वैरिएबल को खोने के अनुरोधों के बीच पुनरारंभ नहीं किया जाएगा।

यदि आप कक्षा वर्ग चर के समान कार्यक्षमता चाहते हैं, तो मैं दृढ़ता से अनुशंसा करता हूं कि आप मेमकैच या रेडिस जैसे प्रमुख मूल्य वाले स्टोर देखें।

+0

प्रक्रियाओं के बीच कुछ भी साझा नहीं किया गया है, न केवल @@ vars। मान लीजिए कि हमें उसी कारण से @ वार्स का भी उपयोग नहीं करना चाहिए, क्या हमें चाहिए? –

+7

@ विक्टर वेल, '@ वेरिएबल्स' आवृत्ति चर हैं और वे लगातार ** ** अनुरोध के भीतर हैं क्योंकि एक अनुरोध नियंत्रक के एक नए उदाहरण को जन्म देता है। बस उन्हें अगले अनुरोध में ढूंढने की उम्मीद न करें। – edgerunner

+0

क्या डाउनवॉटर की व्याख्या करने की देखभाल क्यों होगी? – edgerunner

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