मैं मोंगो और पाल पर आधारित एक एप्लिकेशन विकसित कर रहा हूं, और मैं परीक्षण कर रहा हूं कि पाल में रियलटाइम अपडेट कैसे काम करता है।
मैं अब पाल 0.9.16 का उपयोग कर रहा हूं, लेकिन मुझे 0.10 पाल के बारे में जवाब में भी दिलचस्पी है।
मैं चाहता हूं कि नए दस्तावेजों के लिए एक सूची अपडेट की जाएइसी संग्रह में बनाए गए हैं। यह तब काम करता है जब मैं डाक संदेश भेजने के माध्यम से डाक सॉकेट के माध्यम से दस्तावेज़ जोड़ता हूं। उस स्थिति में मुझे अन्य ग्राहक संदेश प्राप्त करते हुए दिखाई देते हैं और क्लाइंट साइड पर सूची अपडेट की जाती है।
मोंगो पर एक बाहरी सेवा लेखन हैडेटाबेस कठिन है, इसलिए संग्रह हर समय बढ़ रहा है। डेटाबेस में बाहरी सेवा द्वारा सीधे बनाए गए नए तत्वों को सुनने वाले ग्राहकों को सूचित नहीं किया जाता है, इसलिए मुझे इन तत्वों को दिखाने के लिए वेब पेज को रीफ्रेश करना होगा।
प्रशन:
- क्या डेटाबेस क्रिएशन के बारे में नोटिफिकेशन काम करने वाला है, जब वे क्रिएशन खुद पालों से नहीं आते हैं?
- यदि हाँ, तो क्या इसके लिए कुछ विशेष विन्यास की आवश्यकता है?
- यदि नहीं, तो डेटाबेस में परिवर्तन होने पर ग्राहक को सूचीबद्ध संग्रह के बारे में जानकारी रखने के लिए अनुशंसित तरीका क्या होगा?
चियर्स
उत्तर:
जवाब के लिए 3 № 1बहुत दिलचस्प सवाल, हालांकि एक असामान्य नहीं है: लोगों से उल्का वही समस्या थी। मूल रूप से, DB को देखे बिना आप अपने ऐप को क्षैतिज रूप से "t" नहीं कर सकते, क्योंकि एक सर्वर प्रक्रिया से यह पता नहीं चलेगा कि डेटा परिवर्तन दूसरे द्वारा किए गए थे।
इसलिए, पहले तो उन्होंने मतदान करके इसे छांटाडीबी हर 10 सेकंड। :) जाहिर है, यह सबसे अच्छा समाधान नहीं था, इसलिए वे एक दूसरे के साथ समाप्त हो गए (जो कि पाल के लिए भी काम कर सकते हैं): अब वे MongoDB पूंछ रहे हैं oplog और जब भी संबंधित संग्रह में कोई परिवर्तन हो, तो अपडेट अपडेट करें।
कहा कि, आपके सवालों के जवाब देने के लिए:
- AFAIK, Sails प्रक्रिया का DB के लिए किए गए किसी भी बाहरी परिवर्तन के बारे में कोई सुराग नहीं है;
- इसलिए, कॉन्फ़िगर करने के लिए कुछ भी नहीं;
- बाहरी DB (MongoDB) अपडेट को ट्रैक करने का एक तरीका होगा, जो कि आप एक ओप्पल वॉचर्स का उपयोग कर सकते हैं, जिन्हें आप npm (जैसे) में पा सकते हैं। इस या में से एक इन(आदि) जब भी परिवर्तन की जरूरत है और अद्यतन को ट्रिगर करने के लिए सुनने के लिए एक की जरूरत है।
दुर्भाग्य से, यहां कोई तैयार-से-उपयोग समाधान नहीं है, लेकिन मुझे उम्मीद है कि कम से कम अब आपको इस पर विचार करना है कि इसे कैसे काम करना है।