मेरे पास एक डेटाबेस तालिका है जिसमें कुछ रिकॉर्ड संसाधित किए गए हैं। तालिका में एक ध्वज स्तंभ है जो निम्न स्थिति मानों का प्रतिनिधित्व करता है। 1 - संसाधित होने के लिए तैयार, 2- सफलतापूर्वक संसाधित, 3- प्रसंस्करण विफल।डेटाबेस रिकॉर्ड के समूह को संसाधित करने के लिए मल्टीथ्रेडिंग का उपयोग करने के विकल्प?
.NET कोड (दोहराव प्रक्रिया - कंसोल/सेवा) उन अभिलेखों की एक सूची ले जाएगा जो संसाधित होने के लिए तैयार हैं, और उनके माध्यम से लूप करें और उन्हें संसाधित करने का प्रयास करें (बहुत लंबा नहीं), सफलता के आधार पर अद्यतन स्थिति या विफलता।
बेहतर प्रदर्शन करने के लिए, मैं इस प्रक्रिया के लिए मल्टीथ्रेडिंग सक्षम करना चाहता हूं। मैं 6 धागे, प्रत्येक धागे एक सबसेट पकड़ने के लिए सोचने के लिए सोच रहा हूँ।
स्पष्ट रूप से मैं अलग-अलग धागे को एक ही रिकॉर्ड को संसाधित करने से बचना चाहता हूं। मैं उस मामले को संभालने के लिए डेटाबेस में "संसाधित होने" ध्वज नहीं चाहता हूं जहां थ्रेड रिकॉर्ड लटकने से क्रैश हो जाता है।
मुझे ऐसा करने का एकमात्र तरीका उपलब्ध रिकॉर्ड्स की पूरी सूची को पकड़ना और प्रत्येक थ्रेड में समूह (शायद आईडी) असाइन करना है। यदि कोई व्यक्तिगत धागा विफल रहता है, तो अगली बार प्रक्रिया चलने पर इसके अनप्रचारित रिकॉर्ड उठाए जाएंगे।
क्या थ्रेड को निर्दिष्ट करने से पहले समूहों को विभाजित करने के लिए कोई अन्य विकल्प है?
क्या आपके पास अपनी तालिका में कोई पहचान कॉलम है? – YavgenyP
आपको वास्तव में कतार के रूप में अपने डेटाबेस का उपयोग नहीं करना चाहिए। http://en.wikipedia.org/wiki/Database-as-IPC – Oded
थ्रेड, और प्रक्रियाएं, अप्रत्याशित रूप से और अधिकतर खराब समय पर मर जाती हैं। एक थ्रेड आईडी/थ्रेड नंबर पर डीबी आईडी ट्राइंग करना एक अच्छा विचार नहीं है। –