चला रहा है हम अपने जेएमएस उपभोक्ता में थ्रेडपूलएक्सएटर का उपयोग कर रहे हैं और इसे डिफॉल्ट मैसेज लिस्टरनर कंटेनर में इंजेक्शन दे रहे हैं। मुझे उम्मीद है कि यह कई संदेशों के लिए समवर्ती धागे चल रहा है, हालांकि हमारे लॉग दिखाते हैं कि थ्रेड आईडी नहीं बदलेगी। हमारा लॉगिंग दिखाता है कि संदेशों की विभिन्न प्रसंस्करण के लिए, थ्रेड आईडी हमेशा 24 पर होती है।स्प्रिंग थ्रेडपूलटास्क एक्स्सेलर केवल एक थ्रेड
यह है उस स्थिति में वसंत विन्यास:
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"
p:connectionFactory-ref="cachedConnectionFactory"
p:destination-ref="formsCRRDestination"
p:messageListener-ref="formServicePojo"
p:concurrentConsumers="5"
p:idleTaskExecutionLimit="1"
p:maxConcurrentConsumers="25"
p:taskExecutor-ref="threadPoolExecutor"
destroy-method="doShutdown"
>
<bean id="threadPoolExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" >
<property name="corePoolSize" value="1"/>
<property name="maxPoolSize" value="15"/>
<property name="keepAliveSeconds" value="30"/>
</bean>
DefaultMessageListenerContainer में threadPoolExectuor सेम इंजेक्शन नहीं करने के बाद, संदेश अब अलग धागे में मार डाला जा रहा है।
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"
p:connectionFactory-ref="cachedConnectionFactory"
p:destination-ref="formsCRRDestination"
p:messageListener-ref="formServicePojo"
p:concurrentConsumers="5"
p:idleTaskExecutionLimit="1"
p:maxConcurrentConsumers="25"
destroy-method="doShutdown"
>
मैं प्रलेखन पढ़ने की कोशिश की है और मुझे समझ नहीं आता क्यों यह हो रहा है:
इस जिसके परिणामस्वरूप विन्यास है। कोई स्पष्टीकरण?
मैं जेएम में नहीं हूं, लेकिन क्या आपने एक ही समय में कई संदेश भेजने का प्रयास किया? मुझे लगता है कि यहां तंत्र केवल मांग पर एक नया धागा शुरू करना है (यानी कोई निष्क्रिय धागा नहीं है और एक नया संदेश आता है)। –
हां मैंने एक ही समय में कई संदेश भेजने का प्रयास किया था केवल कुछ संदेशों को संसाधित करने में काफी समय लगता है। – Jeune