SimpleScheduledRoutePolicy
Available as of Camel 2.6
SimpleScheduledRoutePolicy is a ScheduledRoutePolicy that facilitates route activation, de-activation, suspension and resumption of routes based on a Quartz SimpleTrigger.
Maven users will need to add a camel-quartz
dependency to their pom.xml
to avail this capability.
Code Block | ||||
---|---|---|---|---|
| ||||
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-quartz</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency> |
Tip | ||
---|---|---|
| ||
All Scheduled route policies share the scheduler created by the Quartz component. In this way, scheduler, jobs and triggers can be managed in a common and consistent way. |
Tip | ||
---|---|---|
| ||
From Camel 2.12.2 onwards you can also make use of the Quartz2 based implementation of this route policy. |
How it works
In order to use a SimpleScheduledRoutePolicy it is necessary to instantiate an object of the type org.apache.camel.routepolicy.quartz.SimpleScheduledRoutePolicy
.
In order to perform a route operation at a given time the following information must be provided.
- Starting a route
Parameter Name | Type | Default | Description |
---|---|---|---|
routeStartDate | java.util.Date |
| the initial scheduled Date and time for route start |
routeStartRepeatCount | int |
| no of times to repeat the job |
routeStartRepeatInterval | long |
| the time interval in milliseconds to trigger the next attempt to start the route |
- Stopping a route
Parameter Name | Type | Default | Description |
---|---|---|---|
routeStopDate | java.util.Date |
| the initial scheduled Date and time for route stop |
routeStopRepeatCount | int |
| no of times to repeat the job |
routeStopRepeatInterval | long |
| the time interval in milliseconds to trigger the next attempt to stop the route |
routeStopGracePeriod | int | 10 seconds | the time period to wait before initiating graceful route stop |
routeStopTimeUnit | long | TimeUnit.MILLISECONDS | the time unit for the grace period expressed as java.util.concurrent.TimeUnit |
- Suspending a route
Parameter Name | Type | Default | Description |
---|---|---|---|
routeSuspendDate | java.util.Date |
| the initial scheduled Date and time for route suspension |
routeSuspendRepeatCount | int |
| no of times to repeat the job |
routeSuspendRepeatInterval | long |
| the time interval in milliseconds to trigger the next attempt to suspend the route |
- Resuming a route
Parameter Name | Type | Default | Description |
---|---|---|---|
routeResumeDate | java.util.Date |
| the initial scheduled Date and time for route start |
routeResumeRepeatCount | int |
| no of times to repeat the job |
routeResumeRepeatInterval | long |
| the time interval in milliseconds to trigger the next attempt to resume the route |
Once the org.apache.camel.routepolicy.quartz.SimpleScheduledRoutePolicy
is created it can be wired into the camel route as follows
Configuring the policy
- In Java
Code Block |
---|
SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy(); long startTime = System.currentTimeMillis() + 3000L; policy.setRouteStartDate(new Date(startTime)); policy.setRouteStartRepeatCount(1); policy.setRouteStartRepeatInterval(3000); from("direct:start") .routeId("test") .routePolicy(policy) .to("mock:success"); |
- Using Spring
Code Block |
---|
<bean id="date" class="org.apache.camel.routepolicy.quartz.SimpleDate"/> <bean id="startPolicy" class="org.apache.camel.routepolicy.quartz.SimpleScheduledRoutePolicy"> <property name="routeStartDate" ref="date"/> <property name="routeStartRepeatCount" value="1"/> <property name="routeStartRepeatInterval" value="3000"/> </bean> <camelContext xmlns="http://camel.apache.org/schema/spring"> <route id="myroute" routePolicyRef="startPolicy"> <from uri="direct:start"/> <to uri="mock:success"/> </route> </camelContext> |
See Also
ScheduledRoutePolicy - for information on policy based scheduling capability for camel routes
RoutePolicy - for information on route policies in general
Quartz -for more information on the quartz component