Как изменить свойства процессора во время выполнения с помощью Camel? - PullRequest
1 голос
/ 15 июля 2009

У меня есть Верблюд Определение маршрута, написанное на Java DSL, например:

from(myEndpoint) 
.throttle(200)
.to(myOtherEndpoint);

Это соединяет мои две конечные точки с помощью Throttler, который ограничивает поток сообщений до 200 сообщений в секунду.

Я ищу способ изменить MaximumRequestCount / секунду во время выполнения. Поэтому мне нужно как-то добраться до экземпляра Throttler, который вызывается, и изменить свойство.

Как я могу получить доступ к Throttler?

Ответы [ 2 ]

1 голос
/ 15 июля 2009

Да, это изящное решение.

В Camel 2.0 теперь вы можете перемещаться по процессорам времени выполнения по маршруту и, таким образом, находить любые Throttlers, а затем иметь возможность динамически их изменять.

Но мы также работаем над улучшением JMX в Camel 2.1, чтобы вы могли изменить троттлер / задержку и т.п. из JMX.

И, возможно, также улучшите API навигации, чтобы вы могли найти его в одной строке, например, возможно поиск по идентификатору, если вы указали идентификатор в маршруте. Или по типам, чтобы вы могли фильтровать и получать только дроссели и т. Д.

1 голос
/ 15 июля 2009

Хорошо, я понял это сам ...

Вы должны определить свой экземпляр Throttler самостоятельно.

Throttler throttler = new Throttler(null, 200);

Затем вы можете использовать его в своих маршрутах следующим образом, потому что Throttler реализует интерфейс процессора:

from(myEndpoint) 
.process(throttler)
.to(myOtherEndpoint);

В любое время вы можете изменить свойства регулятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...