2016-07-12 30 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>

同樣的方法是用Java應用的DSL以及配置<poller>子元素。接下來的端點定義應與所需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(); 
}