CronScheduledRoutePolicy

Available as of Camel version 2.6

CronScheduledRoutePolicy is a ScheduledRoutePolicy that facilitates route activation, de-activation, suspension and resumption of routes based on a Quartz CronTrigger.

Maven users will need to add a camel-quartz dependency to their pom.xml to avail this capability.

<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>

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.

From Camel 2.12.2 onwards you can also make use of the Quartz2 based implementation of this route policy.

<bean id="myStartPolicy" class="org.apache.camel.routepolicy.quartz2.CronScheduledRoutePolicy">
  <!-- start every 5min from monday to saturday -->
  <property name="routeStartTime" value="0 0/5 * ? * 1-6 *" />
</bean>

See CronScheduledRoutePolicy description.

How it works

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.

Once the org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy is created it can be wired into the camel route as follows

Configuring the policy

 
CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy();
startPolicy.setRouteStartTime("*/3 * * * * ?");
                
from("direct:start")
    .routeId("testRoute").routePolicy(startPolicy).noAutoStartup()
    .to("mock:success");
<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>

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