我使用springcamel
作为独立应用程序,它根据psql数据库
返回的内容构建许多路由
:
private void addEndpoint(String urlName, String type, String host, String port, String username, String password) {
String endpointUrl = String.format("https://%s:%s?username=%s&password=%s", host, port, username, password);
from("direct:endpoint_" + urlName)
.throttle(1).timePeriodMillis(60000)
.to(endpointUrl);
}
和route
是在循环中创建的,这取决于从数据库返回的内容,如下所示:
@Override
public void configure() throws Exception {
final List<Url> url= dbUrlDAO.getUrl();
for (Url urlInfo : urls) {
addEndpoint(urlInfo.getName(), urlInfo.getType(), urlInfo.getIp(), urlInfo.getPort(),urlInfo.getUsername(), urlInfo.getPassword());
}
我想要实现的是能够在不重新启动应用程序的情况下添加路由
(路由构建器正在由camel-context.xml初始化)。
是否有办法强制正在运行的应用程序刷新camel上下文
?
最佳答案
是的,您可以在运行时添加/删除路由。 CamelContest 上有 API 可以做到这一点,您可以通过 google 查找/阅读书籍等示例。
关于java - 刷新 apache Camel 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31292890/