java - 刷新 apache Camel 路由

标签 java spring apache-camel

我使用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/

相关文章:

java - 为任何目标部署 Java 应用程序

java - struts 中的两个按钮相互内联

apache-camel - Apache Camel 可以用作通用负载均衡器吗

java - NoHandlerFoundException 集中的 'parameters map' 在哪里?

java - AWS Lambda + Spring,如何加载application.yml

google-bigquery - 将数据流式传输到 Google BigQuery 表 : problems using InsertId to De-Duplicate Records

java - 如何告诉Camel等到副本结束?

java - 从哈希集中删除项目

java - 在 Java 中读取 JSON 数组

java - 如何使用 FFmpeg 限制阅读速度