CronScheduledRoutePolicy
CronScheduledRoutePolicy is a
ScheduledRoutePolicy that facilitates
route activation, de-activation, suspension and resumption of routes
based on a Quartz cron trigger.
| Relationship to the Quartz component 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. | 
Using cron scheduled route policy
In order to use a CronScheduledRoutePolicy it is
necessary to instantiate an object of the type
org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy.
In order to perform a route operation at a given time the following information must be provided.
Starting a route
| Parameter Name | Type | Default Value | Description | 
|---|---|---|---|
| routeStartTime | String | the initial scheduled Date and time as a Cron Expression for route start | 
Stopping a route
| Parameter Name | Type | Default Value | Description | 
|---|---|---|---|
| routeStopTime | String | the initial scheduled Date and time as a Cron Expression for route stop | |
| routeStopGracePeriod | int | 10000 | 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 | 
Configuring the route policy
Once the org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy
is created it can be wired into the Camel route as follows:
In Java:
CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy();
startPolicy.setRouteStartTime("*/3 * * * * ?");
from("direct:start")
    .routeId("testRoute").routePolicy(startPolicy).noAutoStartup()
    .to("mock:success");And with Spring XML:
<bean id="startPolicy" class="org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy">
    <property name="routeStartTime" value="*/3 * * * * ?"/>
</bean>
<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route id="testRoute" routePolicyRef="startPolicy" autoStartup="false">
        <from uri="direct:start"/>
        <to uri="mock:success"/>
    </route>
</camelContext>| Notice how the route to be scheduled MUST be configured to not autostartup, to let the route scheduler take control of starting and stopping the route accordingly. |