どのようにスレッドプール、春JMSリスナー
-
24-10-2019 - |
質問
私の設定は、JMS加入者のリスナーを下記のとおり"を達成するという目標を掲げて、プールの5つのスレッドを聴topATopicしかし、私は実行時には複数の消費者に処理を同じレコード(recordCount*#消費者).
んとやっても間違いを考慮しい新します。
<bean id="messageListener" class="com.abc.app.mdp.Receiver">
<property name="bean" ref="bean" />
</bean>
<jms:listener-container container-type="default"
connection-factory="connectionFactory" acknowledge="auto" concurrency="5" destination-type="topic" prefetch="1" cache="none" >
<jms:listener destination="topCli_Service" ref="messageListener"
method="onMessage" subscription="AProjectSubscriber" />
</jms:listener-container>
<bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryB ean">
<property name="jndiName" value="jms/jms-top-notx" />
</bean>
きんせい方向に私達成を目標としていますか。
解決
の 並行処理 の設定をリスナーのコンテナを設定します。の 春JMS doc この並行処理を設定する1つのネットリスナー.下記を参照してください。
並行処理:数の同時セッション/消費者を開始する各リスナー.は簡単な数の最大数(例えば"5")または範囲を示す低下の上限など"3-5").また、特定の最低基準はただのヒントが無視されます。デフォルトは1であり く並行処理1の場合は話題のリスナー た場合のキューの順序が重要であり、引き上げで一般ます.
このポスト 類似の残りのご質問です。
が必要な場合は複数のスレッドにメッセージ量のメッセージのリスナー委泉 TaskExecutor の処理の非同期メッセージ.TaskExecutorsバックアップを取ることがで多数の実装を含むスレッドプールがあります。
他のヒント
したい場合は指定のメッセージを消費されることを一つだけ消費者のものを使用できるキューの代わりに話題です。トピックのメッセージが放映されるので利用可能なすべての消費者です。
所属していません StackOverflow