functional programming - Scala, Actors, what happens to unread inbox messages? -
स्कला अभिनेता में अपठित इनबॉक्स संदेशों का क्या होता है? उदाहरण के लिए दो मामलों में: मेलबॉक्स एक कतार है - अगर कुछ भी नहीं है कतार से संदेश खींचने (यानी यदि आपके यह कड़ाई से बोलने वाला स्मृति रिसाव (आपके आवेदन का) है, हालांकि इसकी गंभीरता यह निर्भर करती है कि इन अपठित संदेशों की संख्या कैसे बढ़ती है (जाहिर है)। उदाहरण के लिए, मैं प्रायः एक पुनरावृत्ति क्वेरी में मर्ज करने के लिए अभिनेताओं का उपयोग करता हूं और संदेशों की "लाइव स्ट्रीम" दोनों को क्रम संख्या से पहचाना जाता है। मेरी प्रतिक्रिया इस तरह दिखती है: इसमें एक स्मृति रिसाव है, लेकिन "गंभीर" नहीं है, क्योंकि डुप्लिकेट संदेश की संख्या में ऊपरी बाध्य होगी (यानी कोई हो सकता है फिर से खेलना एक बार फिर से किया जाता है)। हालांकि, यह अभी भी एक झुंझलाहट हो सकता है, प्रत्येक प्रतिक्रिया के लिए, अभिनेता उप-प्रणाली उन संदेशों को फिर से स्कैन करेगा ताकि वे संसाधित हो सकें। असल में, एक वास्तविक मेलबॉक्स के बारे में सोच यहाँ एक अच्छा सादृश्य हो सकता है। कल्पना कीजिए कि आपने अपनी सारी जंक मेल को वहां छोड़ दिया था: बहुत जल्द, आप सभी जंक मेल के कारण भुखमरी पीड़ित होंगे, आपको क्रेडिट कार्ड विवरण प्राप्त करने के लिए माध्यम से झुकना होगा।
1. विशेष संदेश के लिए प्रतिक्रिया के मामले को लागू करने के लिए भूल जाएं:
अभिनेता! कोई प्रतिक्रिया नहीं
2 यदि संदेश बहुत तेज आता है तो:
(टाइमऑफ़प्रोसेसिंगमेसेज> समयऑफमेसेज कॉम)
अगर पहले या दूसरा मामला होता है, तो क्या इसे स्मृति में रखा जाना चाहिए? < P> 1 संपादित करें क्या इस प्रकार की स्मृति रिसाव हो रहा है यह देखने के लिए कोई तंत्र है? शायद, अपठित संदेशों की संख्या नियंत्रित करें, फिर कुछ कचरा इकट्ठा करें या अभिनेता पूल बढ़ाएं। अपठित संदेशों की संख्या कैसे प्राप्त करें? कैसे इस प्रकार की स्मृति लीक अन्य भाषाओं में हल हो? उदाहरण के लिए एर्लंग ? प्रतिक्रिया या
प्राप्त लूप रिटर्न
false के लिए
isDefinedAt में आंशिक फ़ंक्शन है) ), तो संदेश बस वहाँ रहना है।
var lastSeq = 0L लूप {प्रतिक्रिया {मामले संदेश (seq, डेटा) अगर seq & gt; अंतिम SEeq = & gt; पिछला SEeq = seq; प्रक्रिया (डेटा)}}
Comments
Post a Comment