|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ShutdownStrategy
Pluggable shutdown strategy executed during shutdown of routes.
Shutting down routes in a reliable and graceful manner is not a trivial task. Therefore Camel provides a pluggable strategy allowing 3rd party to use their own strategy if needed. The key problem is to stop the input consumers for the routes such that no new messages is coming into Camel. But at the same time still keep the routes running so the existing in flight exchanges can still be run to completion. On top of that there are some in memory components (such as SEDA) which may have pending messages on its in memory queue which we want to run to completion as well, otherwise they will get lost. Camel provides a default strategy which supports all that that can be used as inspiration for your own strategy.
ShutdownAware
Method Summary | |
---|---|
boolean |
forceShutdown(Service service)
Whether a service is forced to shutdown. |
long |
getTimeout()
Gets the timeout. |
TimeUnit |
getTimeUnit()
Gets the time unit used |
boolean |
hasTimeoutOccurred()
Whether a timeout has occurred during a shutdown. |
boolean |
isShutdownNowOnTimeout()
Whether to force shutdown of all consumers when a timeout occurred. |
boolean |
isShutdownRoutesInReverseOrder()
Whether to shutdown routes in reverse order than they where started. |
boolean |
isSuppressLoggingOnTimeout()
Whether Camel should try to suppress logging during shutdown and timeout was triggered, meaning forced shutdown is happening. |
void |
setShutdownNowOnTimeout(boolean shutdownNowOnTimeout)
Sets whether to force shutdown of all consumers when a timeout occurred and thus not all consumers was shutdown within that period. |
void |
setShutdownRoutesInReverseOrder(boolean shutdownRoutesInReverseOrder)
Sets whether routes should be shutdown in reverse or the same order as they where started. |
void |
setSuppressLoggingOnTimeout(boolean suppressLoggingOnTimeout)
Whether Camel should try to suppress logging during shutdown and timeout was triggered, meaning forced shutdown is happening. |
void |
setTimeout(long timeout)
Set an timeout to wait for the shutdown to complete. |
void |
setTimeUnit(TimeUnit timeUnit)
Set the time unit to use |
void |
shutdown(CamelContext context,
List<RouteStartupOrder> routes)
Shutdown the routes |
void |
shutdown(CamelContext context,
List<RouteStartupOrder> routes,
long timeout,
TimeUnit timeUnit)
Shutdown the routes using a specified timeout instead of the default timeout values |
boolean |
shutdown(CamelContext context,
RouteStartupOrder route,
long timeout,
TimeUnit timeUnit,
boolean abortAfterTimeout)
Shutdown the route using a specified timeout instead of the default timeout values and supports abortAfterTimeout mode |
void |
shutdownForced(CamelContext context,
List<RouteStartupOrder> routes)
Shutdown the routes, forcing shutdown being more aggressive, if timeout occurred. |
void |
suspend(CamelContext context,
List<RouteStartupOrder> routes)
Suspends the routes |
void |
suspend(CamelContext context,
List<RouteStartupOrder> routes,
long timeout,
TimeUnit timeUnit)
Suspends the routes using a specified timeout instead of the default timeout values |
Methods inherited from interface org.apache.camel.Service |
---|
start, stop |
Method Detail |
---|
void shutdownForced(CamelContext context, List<RouteStartupOrder> routes) throws Exception
CamelContext
is shutting down, to ensure Camel will shutdown
if messages seems to be stuck.
context
- the camel contextroutes
- the routes, ordered by the order they was started
Exception
- is thrown if error shutting down the consumers, however its preferred to avoid thisvoid shutdown(CamelContext context, List<RouteStartupOrder> routes) throws Exception
context
- the camel contextroutes
- the routes, ordered by the order they was started
Exception
- is thrown if error shutting down the consumers, however its preferred to avoid thisvoid suspend(CamelContext context, List<RouteStartupOrder> routes) throws Exception
context
- the camel contextroutes
- the routes, ordered by the order they was started
Exception
- is thrown if error suspending the consumers, however its preferred to avoid thisvoid shutdown(CamelContext context, List<RouteStartupOrder> routes, long timeout, TimeUnit timeUnit) throws Exception
context
- the camel contextroutes
- the routes, ordered by the order they was startedtimeout
- timeouttimeUnit
- the unit to use
Exception
- is thrown if error shutting down the consumers, however its preferred to avoid thisboolean shutdown(CamelContext context, RouteStartupOrder route, long timeout, TimeUnit timeUnit, boolean abortAfterTimeout) throws Exception
context
- the camel contextroute
- the routetimeout
- timeouttimeUnit
- the unit to useabortAfterTimeout
- should abort shutdown after timeout
Exception
- is thrown if error shutting down the consumer, however its preferred to avoid thisvoid suspend(CamelContext context, List<RouteStartupOrder> routes, long timeout, TimeUnit timeUnit) throws Exception
context
- the camel contextroutes
- the routes, ordered by the order they was startedtimeout
- timeouttimeUnit
- the unit to use
Exception
- is thrown if error suspending the consumers, however its preferred to avoid thisvoid setTimeout(long timeout)
Long.MAX_VALUE
The default timeout unit is SECONDS
timeout
- timeout
IllegalArgumentException
- if the timeout value is 0 or negativelong getTimeout()
void setTimeUnit(TimeUnit timeUnit)
timeUnit
- the unit to useTimeUnit getTimeUnit()
void setSuppressLoggingOnTimeout(boolean suppressLoggingOnTimeout)
suppressLoggingOnTimeout
- true to suppress logging, false to log as usual.boolean isSuppressLoggingOnTimeout()
void setShutdownNowOnTimeout(boolean shutdownNowOnTimeout)
CamelContext
has been shutdown.
shutdownNowOnTimeout
- true to force shutdown, false to leave them runningboolean isShutdownNowOnTimeout()
void setShutdownRoutesInReverseOrder(boolean shutdownRoutesInReverseOrder)
shutdownRoutesInReverseOrder
- true to shutdown in reverse orderboolean isShutdownRoutesInReverseOrder()
boolean forceShutdown(Service service)
RedeliveryErrorHandler
uses this information
to know if a forced shutdown is in progress, and then break out of redelivery attempts.
service
- the service
boolean hasTimeoutOccurred()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |