2016-07-12 9 views
1

java-dslを使用してキューチャネルからメッセージを消費しますが、Integrations.fromにはポーラーを指定できる署名がありません。java-dslを使用してキューチャネルにポーラーを指定するにはどうすればよいですか?

どうすればこの問題を解決できますか?

例:

@Bean 
IntegrationFlow flow() { 
    return IntegrationFlows.from(this.channel()) 
         .handle(...) 
         .get(); 
} 

@Bean 
MessageChannel channel() { 
    return MessageChannels.queue().get(); 
} 

答えて

0

まあ、実際には、ポーラーのプロパティを提供するために、エンドポイントの責任です。

あなたがXML設定に精通している場合は、<queue>からポーリングすることを覚えておく必要があり、我々は<service-activator>ため<poller>サブ要素を設定する必要がありますなど

同じアプローチは、同様にJavaのDSLに適用されます。次のエンドポイント定義は、所望のpollerにする必要があります: - それは無視されます何らかの理由で

IntegrationFlows.from(this.channel()) 
        .handle(..., e -> e.poller(Pollers...)) 
        .get(); 
+0

私はXML(私はラクダから来た)に精通していない。私はここで試した。魅力のように動作します。ありがとう。 –

0

私はアルテムが説明するように、エンドポイントの定義にポーラーを設定するいくつかの理由でトラブルがありました。常にデフォルトのポーラーを設定することができます。これは私のために働いた:

@Bean(name = PollerMetadata.DEFAULT_POLLER) 
public PollerMetadata poller() { 
    return Pollers.fixedRate(500).get(); 
} 
関連する問題