2013-04-10 9 views
8

स्प्रिंग के DefaultMessageListenerContainer (डीएमएलसी) में concurrentConsumer और taskExecutor संपत्ति का कार्य है। TaskExecutor बीन corePoolSize संपत्ति दी जा सकती है। समवर्ती कॉन्यूमर और कोरपूलसाइज निर्दिष्ट करने के बीच क्या अंतर है? जब समवर्ती ग्राहक संपत्ति परिभाषित की जाती है तो इसका अर्थ यह है कि संदेश संदेश संसाधित करने के लिए वसंत निर्दिष्ट उपभोक्ता/संदेशसूची बनाएगा। CorePoolSize तस्वीर में कब आता है?स्प्रिंग के डिफॉल्ट मैसेज लिस्टनर कंटैनर

कोड स्निपेट

<bean id="myMessageListener" 
    class="org.springframework.jms.listener.DefaultMessageListenerContainer"> 
    <property name="connectionFactory" ref="connectionFactory" /> 
    <property name="destination" ref="myQueue" /> 
    <property name="messageListener" ref="myListener" /> 
    <property name="cacheLevelName" value="CACHE_CONSUMER"/> 
    <property name="maxConcurrentConsumers" value="10"/> 
    <property name="concurrentConsumers" value="3"/> 
    <property name="taskExecutor" ref="myTaskExecutor"/> 
</bean> 

<bean id="myTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" > 
    <property name="corePoolSize" value="100"/> 
    <property name="maxPoolSize" value="100"/> 
    <property name="keepAliveSeconds" value="30"/> 
    <property name="threadNamePrefix" value="myTaskExecutor"/> 
</bean> 

उत्तर

0

4.3.6 संस्करण के अनुसार, taskExecutorAsyncMessageListenerInvoker के उदाहरण में शामिल है जो संदेश प्रसंस्करण के लिए जिम्मेदार। corePoolSize परिभाषित पूल में कई भौतिक धागे हैं, जबकि concurrentConsumer इस पूल में कई कार्य हैं। मुझे लगता है कि यह अवशोषण अधिक लचीला नियंत्रण के लिए बनाया गया था।

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