私はカスタムシンクモジュールを持っています。メッセージ数がからカウント、またはそれらがしばらくしてからチャンネルに入っているかどうかを確認します。要するに、私は一括押しをしたい。メッセージの数がカウントに達したとき、またはメッセージがチャンネルに入っているときだけチャネルから消費する
SimpleMessageStore
でバックアップされた集約チャネルでメッセージを消費して格納した後、メッセージの数を集計しようとしましたが、チャネル内のメッセージを確認するのにMessageGroupStoreReaper
があります。
私はメッセージを消費してメモリ内のストアに保存しているので、私はこのアプローチに満足していません。私はJDBCストアも認識していますが、メッセージチャネルとしてこのアプローチを踏襲したくありません。春のXDでredis/mqが私の条件に基づいてinput
チャンネルから消費したいと思います。以下に示すように
私の現在のBean構成は次のとおりです。
<int:aggregator id="messageAggregator" ref="messageAggregatorBean"
method="aggregate" input-channel="input" output-channel="aggregatorOutputChannel"
release-strategy="messageReleaseStrategyBean" release-strategy-method="canRelease"
send-partial-result-on-expiry="true" message-store="resultMessageStore">
</int:aggregator>
<int:service-activator id="contributionIndexerService"
ref="contributionIndexerBean" method="bulkIndex" input-channel="aggregatorOutChannel" />
<bean id="resultMessageStore"
class="org.springframework.integration.store.SimpleMessageStore" />
<bean id="resultMessageStoreReaper"
class="org.springframework.integration.store.MessageGroupStoreReaper">
<property name="messageGroupStore" ref="resultMessageStore" />
<property name="timeout" value="60000" />
</bean>
<task:scheduled-tasks>
<task:scheduled ref="resultMessageStoreReaper" method="run"
fixed-rate="10000" />
</task:scheduled-tasks>
任意の考えやコメント?
ありがとうございます。