2017-05-17 16 views
0

私のSubscribableChannelから受信したリクエストを抑制できるようにしたい。私はPollableChannelを使用しません。アノテーションを使用して春:Annotationを使用してメッセージングブリッジのポーラーを設定する方法

<bridge input-channel="pollable" output-channel="subscribable"> 
    <poller max-messages-per-poll="10"> 
     <interval-trigger interval="5" time-unit="SECONDS"/> 
    </poller> 
</bridge> 

http://docs.spring.io/spring-integration/docs/2.0.0.M4/spring-integration-reference/html/bridge.html

:私はこの同等の操作を行うことができるのだろうか?

答えて

0
ブリッジハンドラで

...

@Bean 
@ServiceActivator(inputChannel = "polled", 
     poller = @Poller(fixedRate = "5000", maxMessagesPerPoll = "10")) 
public BridgeHandler bridge() { 
    BridgeHandler bridge = new BridgeHandler(); 
    bridge.setOutputChannelName("direct"); 
    return bridge; 
} 

...あるいは単に...

@Bean 
@BridgeTo(value = "direct", poller = @Poller(fixedDelay = "5000", maxMessagesPerPoll = "10")) 
public PollableChannel polled() { 
    return new QueueChannel(); 
} 

@Bean 
public SubscribableChannel direct() { 
    return new DirectChannel(); 
} 

または

@Bean 
public PollableChannel polled() { 
    return new QueueChannel(); 
} 

@Bean 
@BridgeFrom(value = "polled", poller = @Poller(fixedDelay = "5000", maxMessagesPerPoll = "10")) 
public SubscribableChannel direct() { 
    return new DirectChannel(); 
} 
+0

私はポーリング豆を(作成するために、第二の方法を使用)が、私はチャンネルからanyMessagesを受信して​​いない、私は私の管理コンソールで2つのメッセージを参照してください。 – usr1234

1

少し遅れたが、ここでのソリューションですI私の使用例のために見つけた:

<int-amqp:inbound-channel-adapter id="inbound-channel" prefetch-count="100" concurrent-consumers="1" connection-factory="connectionFactory" queue-names="${queue.name}" error-channel="error-channel" /> 

<int:json-to-object-transformer input-channel="inbound-channel" output-channel="queue-channel" /> 

<int:channel id="queue-channel"> 
    <int:queue capacity="100" /> 
</int:channel> 

<int:bridge input-channel="queue-channel" output-channel="outbound-channel"> 
    <int:poller max-messages-per-poll="100" fixed-delay="1000" /> 
</int:bridge> 

<int:outbound-channel-adapter id="outbound-channel" ref="myServiceBean" method="onMessage" /> 

説明:

amqpインバウンドチャネルアダプタは購読可能です。 「キュースタイル」チャネルを使用してポーリング可能なチャネルに切り替え、ブリッジを使用してキューチャネルからアウトバウンドチャネルにポーリングを実行します。

私の場合は、メッセージストアを設定するか、amqpインバウンドチャネルアダプタの確認モードを手動に設定し、自分のメッセージを失わないようにack my selfを実行する必要があります。

よろしく

関連する問題