मेरी भेक लॉग में मैं समय-समय परक्षणिक MySQL :: त्रुटि: एक उच्च ट्रैफिक साइट पर डुप्लिकेट प्रविष्टि - कोई विचार?
Mysql::Error: Duplicate entry 'XXXX' for key 'YYY'
यह मेरा मॉडल, सभी में लगभग 6 से ज्यादातर के लिए होता है देखेंगे, और मैं एक साइट 5k अनुरोध/मिनट अनुसार के बारे में कर रही पर इस त्रुटि एक बार हर कुछ घंटों देखेंगे न्यूरेलिक के लिए।
मैं इनमें से प्रत्येक मामले में ActiveRecord.find_or_initialize_by कर रहा हूं। यह संभव है, लेकिन असंभव है कि यह एक ही डेटा के दो एक साथ पोस्ट करने वाले क्षेत्र में एक ग्राहक से है, क्योंकि ये मोबाइल क्लाइंट हैं और कोडपैथ वास्तव में खुद को उधार नहीं देता है (यानी, यह क्लाइंट क्लिक नहीं है एक सबमिट बटन दो बार जल्दी)।
वहाँ find_or_initialize_by साथ एक ज्ञात समस्या है? क्या यह संभव है कि मेरा mysql इंस्टेंस (अमेज़ॅन आरडीएस) हर बार बस बाहर निकलता है (हालांकि मैं उम्मीद करता हूं कि उस मामले में कोई अपवाद उठाने के लिए कोई डेटा नहीं लौटाएगा) ...
इसके अलावा, क्या कोई बेहतर तरीका है रिकॉर्ड डालने के लिए? यदि रिकॉर्ड मौजूद है, तो मैं आमतौर पर केवल अपने अपडेट_ट फ़ील्ड को अपडेट कर रहा हूं।
धन्यवाद!
धन्यवाद जानकारी के लिए .... आप शायद सही हो, मुझे लगता है यह है कि अगर मेरी डीबी संचालन में से एक में किसी भी विलंबता है और एक उपयोगकर्ता किसी भी तरह एक कार्रवाई को दोहराता है, मैं इस व्यवहार को चालू कर सकते सैद्धांतिक रूप से संभव है। मुझे यह नहीं लगता कि अक्सर कम से कम (एक बार हर कुछ घंटे ऐसा लगता है कि हजारों अनुरोध/मिनट)। मैंने रेल्स वार्स ब्लॉग पोस्ट पढ़ा है, मैं वह कर रहा हूं जो आप और आप सुझाव देते हैं (इसे डीबी वैधता जांच के साथ समर्थन देना), इसलिए मुझे लगता है कि यह उतना अच्छा है जितना अब के लिए मिलता है .... – esilver