2011-06-29 7 views
6

एक वेबसाइट में, कभी-कभी एक ईमेल भेज कुछ सेकंड लग, तो मैं एक और धागे से ईमेल भेजने के लिए, ईमेल भेजा तक इंतजार नहीं करते की जरूरत है।क्या इस तरह के किसी अन्य धागे से ईमेल भेजना ठीक है?

मुझे यह answer स्टैक ओवरफ्लो पर मिला, क्या यह इस तरह से करना ठीक है, क्या मैं प्रति अनुरोध केवल एक ईमेल भेजूंगा?

या वहां यह करने के लिए एक और मानक तरीका है?

+1

नहीं क्यों SmtpClient.SendAsync का उपयोग करें? – adrianm

उत्तर

4

संभव हो तो, आप एक स्थानीय एसएमटीपी सर्वर है कि केवल लूपबैक पता (127.0.0.1) इस वास्तव में क्या मेल कतारों के लिए कर रहे हैं के रूप में पर सुनता है की स्थापना करनी चाहिए। आप अपने वास्तविक आउटबाउंड मेल सर्वर के माध्यम से अपने एसएमटीपी सर्वर को रिले करने के लिए कॉन्फ़िगर कर सकते हैं ताकि आप स्पैम के रूप में अपने मेल का इलाज करने वाले एसपीएफ़ के साथ समस्याओं में भाग न सकें।

इस प्रकार आपका एप्लिकेशन जल्दी से आउटबाउंड मेल कतार कर सकता है और इसके मजेदार तरीके से हो सकता है और आप उचित रूप से सुनिश्चित कर सकते हैं कि संदेश अंततः भारी भार, नेटवर्क के मुद्दों या यहां तक ​​कि एक दुर्घटना की स्थिति में भी वितरित किया जाएगा।

2

एक अनुरोध हैंडलर अंदर से नई धागे Spawning संभावित खतरनाक है: अगर आप यातायात में एक कील मिलता है, तुम अपने आप को पर्याप्त धागे कि कील बदतर बना देता है बनाने मिल सकती है।

बेहतर मेल जैसे beanstalkd एक उपकरण या अन्य संदेश कतार के माध्यम से किसी अन्य प्रक्रिया के लिए भेजने से बंद हाथ या एक प्रणाली की आपूर्ति mail आदेश (मेरे Linux सिस्टम के mail(1) आदेश का उपयोग करें .07 सेकंड में एक ईमेल संदेश enqueue कर सकते हैं करने के लिए हो सकता है, मध्यम मेल लोड के लिए पर्याप्त)।

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

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