How can I stop a route from a routePage edited by Claus IbsenChanges (6)
Full ContentHow can I stop a route from a routeThe CamelContext provides API for managing routes at runtime. It has a stopRoute(id) and startRoute(id) methods. Stopping a route during routing an existing message is a bit tricky. The reason for that is Camel will Graceful Shutdown the route you are stopping. And if you do that while a message is being routed the Graceful Shutdown will try to wait until that message has been processed. The best practice for stopping a route from a route, is to either
Using another thread to stop the route is also what is normally used when stopping Camel itself, or for example when an application in a server is stopped etc. Its too tricky and hard to stop a route using the same thread that currently is processing a message from the route. This is not advised to do, and can cause unforeseen side effects. Using a latch to stop Camel from a routeIn this example we use a CountdownLatch to signal when Camel should stop, triggered from a route. Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20
And in the route we call the latch as shown: Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20
Using a thread to stop a route from a routeIn this example we use a separate Thread to stop the route, triggered from the route itself. Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20
And in the route we create the thread and call the stopRoute method as shown: Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20
Alternative solutionsCamel provides another feature for managing routes at runtime which is RoutePolicy. And CamelContext also provides API for suspend/resume of routes, and shutdown as well.
See more details about the Lifecycle. See Also
Change Notification Preferences
View Online
|
View Changes
|
Add Comment
|
- [CONF] Apache Camel > How can I stop a route from a route confluence
- [CONF] Apache Camel > How can I stop a route from a rou... confluence