java - How is concurrency in Spring AMQP Listener Container implemented? -


मेरा कंटेनर XML कॉन्फ़िग:

  & lt; खरगोश: श्रोता-कंटेनर कनेक्शन-कारखाना = "MyConnectionFactory" स्वीकार करें = "कोई नहीं" concurrency = "10" requeue-reject = "false" & gt; & Lt; खरगोश: श्रोता रिफ = "मेरी लिस्टनर" क्यूज = "मायकुइउ" / & gt; & Lt; / खरगोश: श्रोता-कंटेनर & gt;  

और myListener सिर्फ एक वर्ग है

  @Component ("myListener") सार्वजनिक वर्ग MyListener लागू MessageListener {@Autowired SomeDependency निर्भरता; ....}  

मैंने अपने कोड में concurrency = "10" निर्दिष्ट किया है इसका अर्थ बिल्कुल क्या है?


मैंने पाया है। वे यह बताते हुए उपयोगी नहीं हैं कि:

बनाने के लिए समवर्ती उपभोक्ताओं की संख्या निर्दिष्ट करें।

  • कई थ्रेडों द्वारा उपयोग किए गए कई उदाहरण या सिंगल इंस्टेंस हैं?
  • क्या मैं इंस्टेंस फ़ील्ड w / o सिंक्रनाइज़ेशन का उपयोग कर सकता हूँ?
  • है कुछ निर्भरता निर्भरता एक बार या के लिए instantiated प्रत्येक धागा / उदाहरण?
  • क्या निर्भरता को थ्रेड सुरक्षित होना चाहिए?

हां, संगामिति का उपयोग करने के लिए, आपके श्रोता को धागा-सुरक्षित होना चाहिए कंटेनर प्रति एक श्रोता उदाहरण है हालांकि, & lt; खरगोश: श्रोता-कंटेनर / & gt; नाम स्थान तत्व वास्तव में "साझा" विशेषताओं को जोड़ने की सुविधा है, प्रत्येक श्रोता तत्व को अपना कंटेनर मिलता है।

यह आम तौर पर सबसे अच्छी तरह से stateless वस्तुओं (कोई फ़ील्ड जो लिखा है) का उपयोग करने के लिए सबसे अच्छा है, लेकिन यह हमेशा संभव नहीं है।

यदि आपका श्रोता थ्रेड-सुरक्षित नहीं है, तो आप उपयोग कर सकते हैं ...

  & lt; खरगोश: श्रोता-कंटेनर कनेक्शन-कारखाना = "myConnectionFactory" स्वीकार करें = "कोई नहीं" requeue-reject = "false" & gt; & Lt; खरगोश: श्रोता रिफ = "मेरी लिस्टनर" क्यूज = "मायकुइउ" / & gt; & Lt; खरगोश: श्रोता रिफ = "मेरी लिस्टनर" क्यूज = "मायकुइउ" / & gt; & Lt; खरगोश: श्रोता रिफ = "मेरी लिस्टनर" क्यूज = "मायकुइउ" / & gt; & Lt; खरगोश: श्रोता रिफ = "मेरी लिस्टनर" क्यूज = "मायकुइउ" / & gt; ... & lt; / खरगोश: श्रोता-कंटेनर & gt;  

... और जोड़ें @ स्कोप (कॉन्फ़िगरबलफ़िएन। SCOPE_PROTOTYPE) । तब आपको प्रत्येक श्रोता के लिए एक कंटेनर मिलेगा और श्रोता के एक अलग उदाहरण प्रत्येक में इंजेक्ट किया जाएगा।

आपको श्रोता में इंजेक्शन के लिए किसी गैर-धागा-सुरक्षित निर्भरताओं के लिए प्रोटोटाइप दायरे की भी आवश्यकता होगी।


Comments

Popular posts from this blog

import - Python ImportError: No module named wmi -

Editing Python Class in Shell and SQLAlchemy -

c# - MySQL Parameterized Select Query joining tables issue -