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.

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

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

© 2004-2011 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram