...
Maven users will need to add a camel-quartz dependency to their pom.xml
to avail this capability.
Codeblock |
|
<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>
|
...
Tipp |
title |
Relationship to the [Quartz2] component |
|
From Camel 2.12.2 onwards you can also make use of the Quartz2 based implementation of this route policy.
Codeblock |
|
<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.
-
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 |
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 Value |
Description |
routeSuspendTime |
String |
|
the initial scheduled Date and time as a Cron _expression_ for route suspension |
-
Resuming a route
Parameter Name |
Type |
Default Value |
Description |
routeResumeTime |
String |
|
the initial scheduled Date and time as a Cron _expression_ for route resumption |
...
Codeblock |
CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy();
startPolicy.setRouteStartTime("*/3 * * * * ?");
from("direct:start")
.routeId("testRoute").routePolicy(startPolicy).noAutoStartup()
.to("mock:success");;
|
Codeblock |
|
<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>
|
...