gpt4 book ai didi

java - Apache Camel : Add bean to registry for custom poll strategy

转载 作者:行者123 更新时间:2023-11-29 04:55:03 26 4
gpt4 key购买 nike

我需要在 RouteBuilder 内的路由上实现自定义 PollingConsumerPollStrategy 实现。我找到的示例使用 spring 创建一个 bean,但我没有在我的项目中使用 Spring。

如何将 MyPollStrategy 添加到注册表并将其用作 pollStrategy=#myPoll ?

public class MyFtpServiceBuilder extends RouteBuilder {

@Override
public void configure() throws Exception {

// Want to add to below route &pollStrategy=#myPoll

from("sftp://tmpserver.example.com:22//tmp/testfolder?password=xxxxxx&username=tmpuser")
.routeId("testRoute")
.to("file:C:/tmp/testfolder")

}

private class MyPollStrategy implements PollingConsumerPollStrategy {
public boolean begin(Consumer consumer, Endpoint endpoint) {
return true;
}
public void commit(Consumer consumer, Endpoint endpoint, int polledMessages) {
if (polledMessages > maxPolls) {
maxPolls = polledMessages;
}
latch.countDown();
}
public boolean rollback(Consumer consumer, Endpoint endpoint, int retryCounter, Exception cause) throws Exception {
return false;
}
}
}

最佳答案

您可以创建一个 SimpleRegistry 实例,您可以在其中添加自定义 bean。然后将简单的注册表实例传递到您使用 new DefaultCamelContext(myRegistry) 构造函数创建 CamelContext 的位置。

如果你有一本 Camel in Action 书,请参阅 beans 章节,它更详细地解释了这一切。

网站上有一些详细信息:http://camel.apache.org/registry.html

关于java - Apache Camel : Add bean to registry for custom poll strategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34130429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com