Стратегии жизненного цикла Camel Bean? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть верблюжий маршрут, подобный показанному ниже.Как настроить Camel для создания нового экземпляра CodeRunner при каждом запуске маршрута?

        public void configure() {
            from("activemq:queue:foo?asyncConsumer=true&concurrentConsumers=10")
                    .bean(new codeRunner(), "runCode")
                    .to("stream:out");
        }

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете просто использовать scope = "prototype" для вашего компонента.Вот несколько примеров.Маршрут:

from("timer://foo?period=30s")
            .setBody(simple("bean:test?method=getDate"))
            .log(LoggingLevel.INFO, "Body:${body}");

Боб:

<bean id="test" class="my.test.package.Test" scope="prototype"  />

Код:

public class Test {

final Timestamp date;

public Test() {
    this.date = new Timestamp(System.currentTimeMillis());
}

public Timestamp getDate() {
    return date;
}

}

Выход:

2018-11-13 16:45:07,372 | INFO  | #6 - timer://foo | route4                           | 98 - org.apache.camel.camel-core - 2.16.3 | Body:2018-11-13 16:45:07.37
2018-11-13 16:45:37,371 | INFO  | #6 - timer://foo | route4                           | 98 - org.apache.camel.camel-core - 2.16.3 | Body:2018-11-13 16:45:37.37
2018-11-13 16:46:07,371 | INFO  | #6 - timer://foo | route4                           | 98 - org.apache.camel.camel-core - 2.16.3 | Body:2018-11-13 16:46:07.371
2018-11-13 16:46:37,375 | INFO  | #6 - timer://foo | route4                           | 98 - org.apache.camel.camel-core - 2.16.3 | Body:2018-11-13 16:46:37.375
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...