You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Borut Bolčina <bo...@gmail.com> on 2012/04/24 14:45:08 UTC

Scheduled route execution with CronScheduledRoutePolicy don't work as expected

Hello,

while this:

public void configure() {
 from("quartz://myTimer?trigger.repeatInterval=2000&trigger.repeatCount=-1")
 .to("http://my.company.com/test.txt")
 .log("${body}");
 }

nicely prints out the content of the test.txt to the console every 2
seconds;

[2012/04/24 14:35:12.884] INFO  [route1:info]: Just some small text file
[2012/04/24 14:35:14.723] INFO  [route1:info]: Just some small text file
[2012/04/24 14:35:16.710] INFO  [route1:info]: Just some small text file
[2012/04/24 14:35:18.710] INFO  [route1:info]: Just some small text file
[2012/04/24 14:35:20.711] INFO  [route1:info]: Just some small text file
[2012/04/24 14:35:22.711] INFO  [route1:info]: Just some small text file
[2012/04/24 14:35:24.653] INFO  [main.MainSupport$HangupInterceptor:run]:
Received hang up - stopping the main instance.

but the following code using CronScheduledRoutePolicy or
SimpleScheduledRoutePolicy:

public void configure() {
 CronScheduledRoutePolicy cronPolicy = new CronScheduledRoutePolicy();
cronPolicy.setRouteStartTime("0/2 * * * * ?");
 from(" http://my.company.com/test.txt ")
.noAutoStartup()
.routePolicy(simpleScheduledPolicy)
 .log("${body}");
}

starts consuming from the http endpoint (or at least printing out) every
few milliseconds instead of every 2 seconds:

[2012/04/24 14:29:10.219] INFO  [main.MainSupport:doStart]: Apache Camel
2.9.2 starting
[2012/04/24 14:29:11.239] INFO  [spring.SpringCamelContext:start]: Apache
Camel 2.9.2 (CamelContext: camel-1) is starting
[2012/04/24 14:29:11.241] INFO
 [management.ManagementStrategyFactory:create]: JMX enabled. Using
ManagedManagementStrategy.
[2012/04/24 14:29:11.283] INFO
 [management.DefaultManagementLifecycleStrategy:doStart]: StatisticsLevel
at All so enabling load p
erformance statistics
[2012/04/24 14:29:11.342] INFO
 [converter.AnnotationTypeConverterLoader:load]: Found 3 packages with 15
@Converter classes to loa
d
[2012/04/24 14:29:11.362] INFO
 [converter.DefaultTypeConverter:loadCoreTypeConverters]: Loaded 170 core
type converters (total 17
0 type converters)
[2012/04/24 14:29:11.367] INFO
 [converter.AnnotationTypeConverterLoader:load]: Loaded 2 @Converter classes
[2012/04/24 14:29:11.373] INFO
 [converter.DefaultTypeConverter:loadTypeConverters]: Loaded additional 9
type converters (total 17
9 type converters) in 0.010 seconds
[2012/04/24 14:29:11.511] INFO  [simpl.SimpleThreadPool:initialize]: Job
execution threads will use class loader of thread: org.ap
ache.camel.spring.Main.main()
[2012/04/24 14:29:11.527] INFO  [core.SchedulerSignalerImpl:<init>]:
Initialized Scheduler Signaller of type: class org.quartz.cor
e.SchedulerSignalerImpl
[2012/04/24 14:29:11.528] INFO  [core.QuartzScheduler:<init>]: Quartz
Scheduler v.1.8.5 created.
[2012/04/24 14:29:11.530] INFO  [simpl.RAMJobStore:initialize]: RAMJobStore
initialized.
[2012/04/24 14:29:11.531] INFO  [core.QuartzScheduler:initialize]:
Scheduler meta-data: Quartz Scheduler (v1.8.5) 'DefaultQuartzSc
heduler-camel-1' with instanceId 'NON_CLUSTERED'
  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support
persistence. and is not clustered.

[2012/04/24 14:29:11.532] INFO  [impl.StdSchedulerFactory:instantiate]:
Quartz scheduler 'DefaultQuartzScheduler-camel-1' initiali
zed from an externally provided properties instance.
[2012/04/24 14:29:11.533] INFO  [impl.StdSchedulerFactory:instantiate]:
Quartz scheduler version: 1.8.5
[2012/04/24 14:29:11.545] INFO
 [quartz.ScheduledRoutePolicy:scheduleRoute]: Scheduled trigger:
triggerGroup-route1.trigger-START-
route1 for action: START on route:
[2012/04/24 14:29:11.563] INFO
 [spring.SpringCamelContext:doStartOrResumeRouteConsumers]: Skipping
starting of route route1 as it
s configured with autoStartup=false
[2012/04/24 14:29:11.564] INFO  [quartz.QuartzComponent:startScheduler]:
Starting Quartz scheduler: DefaultQuartzScheduler-camel-1

[2012/04/24 14:29:11.564] INFO  [core.QuartzScheduler:start]: Scheduler
DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED started.
[2012/04/24 14:29:11.567] INFO  [spring.SpringCamelContext:start]: Total 1
routes, of which 0 is started.
[2012/04/24 14:29:11.568] INFO  [spring.SpringCamelContext:start]: Apache
Camel 2.9.2 (CamelContext: camel-1) started in 0.328 sec
onds
[2012/04/24 14:29:12.019] INFO
 [spring.SpringCamelContext:doStartOrResumeRouteConsumers]: Route: route1
started and consuming fro
m: Endpoint[http://razvoj.dev.interseek.com/test.txt]
[2012/04/24 14:29:13.207] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.227] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.237] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.247] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.257] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.267] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.277] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.287] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.297] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.307] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.317] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.327] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.337] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:13.347] INFO  [route1:info]: Just some small text file
...LOTS MORE UNTIL I BREAK THE EXECUTION
[2012/04/24 14:29:24.048] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.050] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.052] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.054] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.056] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.058] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.060] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.062] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.064] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.066] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.067] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.070] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.072] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.073] INFO  [main.MainSupport$HangupInterceptor:run]:
Received hang up - stopping the main instance.
[2012/04/24 14:29:24.074] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.074] INFO  [main.MainSupport:doStop]: Apache Camel
2.9.2 stopping
[2012/04/24 14:29:24.075] INFO  [spring.SpringCamelContext:doStop]: Apache
Camel 2.9.2 (CamelContext: camel-1) is shutting down
[2012/04/24 14:29:24.076] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.076] INFO  [impl.DefaultShutdownStrategy:doShutdown]:
Starting to graceful shutdown 1 routes (timeout 300 sec
onds)
[2012/04/24 14:29:24.078] INFO  [route1:info]: Just some small text file
[2012/04/24 14:29:24.079] INFO  [impl.DefaultShutdownStrategy:run]: Route:
route1 shutdown complete, was consuming from: Endpoint[
http://razvoj.dev.interseek.com/test.txt]
[2012/04/24 14:29:24.079] INFO  [impl.DefaultShutdownStrategy:doShutdown]:
Graceful shutdown of 1 routes completed in 0 seconds
[2012/04/24 14:29:24.081] INFO  [quartz.QuartzComponent:doStop]: There are
no more jobs registered, so shutting down Quartz schedu
ler: DefaultQuartzScheduler-camel-1
[2012/04/24 14:29:24.082] INFO  [core.QuartzScheduler:shutdown]: Scheduler
DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED shutting
 down.
[2012/04/24 14:29:24.082] INFO  [core.QuartzScheduler:standby]: Scheduler
DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED paused.
[2012/04/24 14:29:24.082] INFO  [core.QuartzScheduler:shutdown]: Scheduler
DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED shutdown
 complete.
[2012/04/24 14:29:24.083] INFO  [impl.DefaultInflightRepository:doStop]:
Shutting down with no inflight exchanges.
[2012/04/24 14:29:24.084] INFO  [spring.SpringCamelContext:doStop]: Uptime:
12.845 seconds
[2012/04/24 14:29:24.085] INFO  [spring.SpringCamelContext:doStop]: Apache
Camel 2.9.2 (CamelContext: camel-1) is shutdown in 0.00
9 seconds

The cron expression

cronPolicy.setRouteStartTime("0 0/1 * * * ?");

waits correctly on the first minute to start consuming, but then it prints
out the contents of the file just like the above example - every few
milliseconds.

Is CronScheduledRoutePolicy meant for something different or is this a bug?

Cheers,
borut

Re: Scheduled route execution with CronScheduledRoutePolicy don't work as expected

Posted by Borut Bolčina <bo...@gmail.com>.
Thanks for the clarification Claus!

-borut

Dne 24. april 2012 16:41 je Claus Ibsen <cl...@gmail.com> napisal/-a:

> Hi
>
> Its *not* the same.
>
> The 1st route is from quartz, which sends out a message every X period.
> You can configure that route to use cron as well.
>
> The 2nd route is from http, which mean you constantly poll a http
> endpoint by sending a http get, and routing the response, this will
> repeat itself as long as the route is running.
>
> The route policy will just tell when to start | stop a given route
> based on some policy. In your case you only have a start cron
> expression.
> You would need a stop as well. But as long the rout is running, the
> from http will run as fast as possible. And therefore you see so many
> calls in the logs.
>
>
>
>
>
> On Tue, Apr 24, 2012 at 2:45 PM, Borut Bolčina <bo...@gmail.com>
> wrote:
> > Hello,
> >
> > while this:
> >
> > public void configure() {
> >
>  from("quartz://myTimer?trigger.repeatInterval=2000&trigger.repeatCount=-1")
> >  .to("http://my.company.com/test.txt")
> >  .log("${body}");
> >  }
> >
> > nicely prints out the content of the test.txt to the console every 2
> > seconds;
> >
> > [2012/04/24 14:35:12.884] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:35:14.723] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:35:16.710] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:35:18.710] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:35:20.711] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:35:22.711] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:35:24.653] INFO  [main.MainSupport$HangupInterceptor:run]:
> > Received hang up - stopping the main instance.
> >
> > but the following code using CronScheduledRoutePolicy or
> > SimpleScheduledRoutePolicy:
> >
> > public void configure() {
> >  CronScheduledRoutePolicy cronPolicy = new CronScheduledRoutePolicy();
> > cronPolicy.setRouteStartTime("0/2 * * * * ?");
> >  from(" http://my.company.com/test.txt ")
> > .noAutoStartup()
> > .routePolicy(simpleScheduledPolicy)
> >  .log("${body}");
> > }
> >
> > starts consuming from the http endpoint (or at least printing out) every
> > few milliseconds instead of every 2 seconds:
> >
> > [2012/04/24 14:29:10.219] INFO  [main.MainSupport:doStart]: Apache Camel
> > 2.9.2 starting
> > [2012/04/24 14:29:11.239] INFO  [spring.SpringCamelContext:start]: Apache
> > Camel 2.9.2 (CamelContext: camel-1) is starting
> > [2012/04/24 14:29:11.241] INFO
> >  [management.ManagementStrategyFactory:create]: JMX enabled. Using
> > ManagedManagementStrategy.
> > [2012/04/24 14:29:11.283] INFO
> >  [management.DefaultManagementLifecycleStrategy:doStart]: StatisticsLevel
> > at All so enabling load p
> > erformance statistics
> > [2012/04/24 14:29:11.342] INFO
> >  [converter.AnnotationTypeConverterLoader:load]: Found 3 packages with 15
> > @Converter classes to loa
> > d
> > [2012/04/24 14:29:11.362] INFO
> >  [converter.DefaultTypeConverter:loadCoreTypeConverters]: Loaded 170 core
> > type converters (total 17
> > 0 type converters)
> > [2012/04/24 14:29:11.367] INFO
> >  [converter.AnnotationTypeConverterLoader:load]: Loaded 2 @Converter
> classes
> > [2012/04/24 14:29:11.373] INFO
> >  [converter.DefaultTypeConverter:loadTypeConverters]: Loaded additional 9
> > type converters (total 17
> > 9 type converters) in 0.010 seconds
> > [2012/04/24 14:29:11.511] INFO  [simpl.SimpleThreadPool:initialize]: Job
> > execution threads will use class loader of thread: org.ap
> > ache.camel.spring.Main.main()
> > [2012/04/24 14:29:11.527] INFO  [core.SchedulerSignalerImpl:<init>]:
> > Initialized Scheduler Signaller of type: class org.quartz.cor
> > e.SchedulerSignalerImpl
> > [2012/04/24 14:29:11.528] INFO  [core.QuartzScheduler:<init>]: Quartz
> > Scheduler v.1.8.5 created.
> > [2012/04/24 14:29:11.530] INFO  [simpl.RAMJobStore:initialize]:
> RAMJobStore
> > initialized.
> > [2012/04/24 14:29:11.531] INFO  [core.QuartzScheduler:initialize]:
> > Scheduler meta-data: Quartz Scheduler (v1.8.5) 'DefaultQuartzSc
> > heduler-camel-1' with instanceId 'NON_CLUSTERED'
> >  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
> >  NOT STARTED.
> >  Currently in standby mode.
> >  Number of jobs executed: 0
> >  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
> >  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support
> > persistence. and is not clustered.
> >
> > [2012/04/24 14:29:11.532] INFO  [impl.StdSchedulerFactory:instantiate]:
> > Quartz scheduler 'DefaultQuartzScheduler-camel-1' initiali
> > zed from an externally provided properties instance.
> > [2012/04/24 14:29:11.533] INFO  [impl.StdSchedulerFactory:instantiate]:
> > Quartz scheduler version: 1.8.5
> > [2012/04/24 14:29:11.545] INFO
> >  [quartz.ScheduledRoutePolicy:scheduleRoute]: Scheduled trigger:
> > triggerGroup-route1.trigger-START-
> > route1 for action: START on route:
> > [2012/04/24 14:29:11.563] INFO
> >  [spring.SpringCamelContext:doStartOrResumeRouteConsumers]: Skipping
> > starting of route route1 as it
> > s configured with autoStartup=false
> > [2012/04/24 14:29:11.564] INFO  [quartz.QuartzComponent:startScheduler]:
> > Starting Quartz scheduler: DefaultQuartzScheduler-camel-1
> >
> > [2012/04/24 14:29:11.564] INFO  [core.QuartzScheduler:start]: Scheduler
> > DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED started.
> > [2012/04/24 14:29:11.567] INFO  [spring.SpringCamelContext:start]: Total
> 1
> > routes, of which 0 is started.
> > [2012/04/24 14:29:11.568] INFO  [spring.SpringCamelContext:start]: Apache
> > Camel 2.9.2 (CamelContext: camel-1) started in 0.328 sec
> > onds
> > [2012/04/24 14:29:12.019] INFO
> >  [spring.SpringCamelContext:doStartOrResumeRouteConsumers]: Route: route1
> > started and consuming fro
> > m: Endpoint[http://razvoj.dev.interseek.com/test.txt]
> > [2012/04/24 14:29:13.207] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.227] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.237] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.247] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.257] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.267] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.277] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.287] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.297] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.307] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.317] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.327] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.337] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:13.347] INFO  [route1:info]: Just some small text file
> > ...LOTS MORE UNTIL I BREAK THE EXECUTION
> > [2012/04/24 14:29:24.048] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.050] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.052] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.054] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.056] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.058] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.060] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.062] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.064] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.066] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.067] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.070] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.072] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.073] INFO  [main.MainSupport$HangupInterceptor:run]:
> > Received hang up - stopping the main instance.
> > [2012/04/24 14:29:24.074] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.074] INFO  [main.MainSupport:doStop]: Apache Camel
> > 2.9.2 stopping
> > [2012/04/24 14:29:24.075] INFO  [spring.SpringCamelContext:doStop]:
> Apache
> > Camel 2.9.2 (CamelContext: camel-1) is shutting down
> > [2012/04/24 14:29:24.076] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.076] INFO
>  [impl.DefaultShutdownStrategy:doShutdown]:
> > Starting to graceful shutdown 1 routes (timeout 300 sec
> > onds)
> > [2012/04/24 14:29:24.078] INFO  [route1:info]: Just some small text file
> > [2012/04/24 14:29:24.079] INFO  [impl.DefaultShutdownStrategy:run]:
> Route:
> > route1 shutdown complete, was consuming from: Endpoint[
> > http://razvoj.dev.interseek.com/test.txt]
> > [2012/04/24 14:29:24.079] INFO
>  [impl.DefaultShutdownStrategy:doShutdown]:
> > Graceful shutdown of 1 routes completed in 0 seconds
> > [2012/04/24 14:29:24.081] INFO  [quartz.QuartzComponent:doStop]: There
> are
> > no more jobs registered, so shutting down Quartz schedu
> > ler: DefaultQuartzScheduler-camel-1
> > [2012/04/24 14:29:24.082] INFO  [core.QuartzScheduler:shutdown]:
> Scheduler
> > DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED shutting
> >  down.
> > [2012/04/24 14:29:24.082] INFO  [core.QuartzScheduler:standby]: Scheduler
> > DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED paused.
> > [2012/04/24 14:29:24.082] INFO  [core.QuartzScheduler:shutdown]:
> Scheduler
> > DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED shutdown
> >  complete.
> > [2012/04/24 14:29:24.083] INFO  [impl.DefaultInflightRepository:doStop]:
> > Shutting down with no inflight exchanges.
> > [2012/04/24 14:29:24.084] INFO  [spring.SpringCamelContext:doStop]:
> Uptime:
> > 12.845 seconds
> > [2012/04/24 14:29:24.085] INFO  [spring.SpringCamelContext:doStop]:
> Apache
> > Camel 2.9.2 (CamelContext: camel-1) is shutdown in 0.00
> > 9 seconds
> >
> > The cron expression
> >
> > cronPolicy.setRouteStartTime("0 0/1 * * * ?");
> >
> > waits correctly on the first minute to start consuming, but then it
> prints
> > out the contents of the file just like the above example - every few
> > milliseconds.
> >
> > Is CronScheduledRoutePolicy meant for something different or is this a
> bug?
> >
> > Cheers,
> > borut
>
>
>
> --
> Claus Ibsen
> -----------------
> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
> FuseSource
> Email: cibsen@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>

Re: Scheduled route execution with CronScheduledRoutePolicy don't work as expected

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Its *not* the same.

The 1st route is from quartz, which sends out a message every X period.
You can configure that route to use cron as well.

The 2nd route is from http, which mean you constantly poll a http
endpoint by sending a http get, and routing the response, this will
repeat itself as long as the route is running.

The route policy will just tell when to start | stop a given route
based on some policy. In your case you only have a start cron
expression.
You would need a stop as well. But as long the rout is running, the
from http will run as fast as possible. And therefore you see so many
calls in the logs.





On Tue, Apr 24, 2012 at 2:45 PM, Borut Bolčina <bo...@gmail.com> wrote:
> Hello,
>
> while this:
>
> public void configure() {
>  from("quartz://myTimer?trigger.repeatInterval=2000&trigger.repeatCount=-1")
>  .to("http://my.company.com/test.txt")
>  .log("${body}");
>  }
>
> nicely prints out the content of the test.txt to the console every 2
> seconds;
>
> [2012/04/24 14:35:12.884] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:35:14.723] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:35:16.710] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:35:18.710] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:35:20.711] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:35:22.711] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:35:24.653] INFO  [main.MainSupport$HangupInterceptor:run]:
> Received hang up - stopping the main instance.
>
> but the following code using CronScheduledRoutePolicy or
> SimpleScheduledRoutePolicy:
>
> public void configure() {
>  CronScheduledRoutePolicy cronPolicy = new CronScheduledRoutePolicy();
> cronPolicy.setRouteStartTime("0/2 * * * * ?");
>  from(" http://my.company.com/test.txt ")
> .noAutoStartup()
> .routePolicy(simpleScheduledPolicy)
>  .log("${body}");
> }
>
> starts consuming from the http endpoint (or at least printing out) every
> few milliseconds instead of every 2 seconds:
>
> [2012/04/24 14:29:10.219] INFO  [main.MainSupport:doStart]: Apache Camel
> 2.9.2 starting
> [2012/04/24 14:29:11.239] INFO  [spring.SpringCamelContext:start]: Apache
> Camel 2.9.2 (CamelContext: camel-1) is starting
> [2012/04/24 14:29:11.241] INFO
>  [management.ManagementStrategyFactory:create]: JMX enabled. Using
> ManagedManagementStrategy.
> [2012/04/24 14:29:11.283] INFO
>  [management.DefaultManagementLifecycleStrategy:doStart]: StatisticsLevel
> at All so enabling load p
> erformance statistics
> [2012/04/24 14:29:11.342] INFO
>  [converter.AnnotationTypeConverterLoader:load]: Found 3 packages with 15
> @Converter classes to loa
> d
> [2012/04/24 14:29:11.362] INFO
>  [converter.DefaultTypeConverter:loadCoreTypeConverters]: Loaded 170 core
> type converters (total 17
> 0 type converters)
> [2012/04/24 14:29:11.367] INFO
>  [converter.AnnotationTypeConverterLoader:load]: Loaded 2 @Converter classes
> [2012/04/24 14:29:11.373] INFO
>  [converter.DefaultTypeConverter:loadTypeConverters]: Loaded additional 9
> type converters (total 17
> 9 type converters) in 0.010 seconds
> [2012/04/24 14:29:11.511] INFO  [simpl.SimpleThreadPool:initialize]: Job
> execution threads will use class loader of thread: org.ap
> ache.camel.spring.Main.main()
> [2012/04/24 14:29:11.527] INFO  [core.SchedulerSignalerImpl:<init>]:
> Initialized Scheduler Signaller of type: class org.quartz.cor
> e.SchedulerSignalerImpl
> [2012/04/24 14:29:11.528] INFO  [core.QuartzScheduler:<init>]: Quartz
> Scheduler v.1.8.5 created.
> [2012/04/24 14:29:11.530] INFO  [simpl.RAMJobStore:initialize]: RAMJobStore
> initialized.
> [2012/04/24 14:29:11.531] INFO  [core.QuartzScheduler:initialize]:
> Scheduler meta-data: Quartz Scheduler (v1.8.5) 'DefaultQuartzSc
> heduler-camel-1' with instanceId 'NON_CLUSTERED'
>  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
>  NOT STARTED.
>  Currently in standby mode.
>  Number of jobs executed: 0
>  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
>  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support
> persistence. and is not clustered.
>
> [2012/04/24 14:29:11.532] INFO  [impl.StdSchedulerFactory:instantiate]:
> Quartz scheduler 'DefaultQuartzScheduler-camel-1' initiali
> zed from an externally provided properties instance.
> [2012/04/24 14:29:11.533] INFO  [impl.StdSchedulerFactory:instantiate]:
> Quartz scheduler version: 1.8.5
> [2012/04/24 14:29:11.545] INFO
>  [quartz.ScheduledRoutePolicy:scheduleRoute]: Scheduled trigger:
> triggerGroup-route1.trigger-START-
> route1 for action: START on route:
> [2012/04/24 14:29:11.563] INFO
>  [spring.SpringCamelContext:doStartOrResumeRouteConsumers]: Skipping
> starting of route route1 as it
> s configured with autoStartup=false
> [2012/04/24 14:29:11.564] INFO  [quartz.QuartzComponent:startScheduler]:
> Starting Quartz scheduler: DefaultQuartzScheduler-camel-1
>
> [2012/04/24 14:29:11.564] INFO  [core.QuartzScheduler:start]: Scheduler
> DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED started.
> [2012/04/24 14:29:11.567] INFO  [spring.SpringCamelContext:start]: Total 1
> routes, of which 0 is started.
> [2012/04/24 14:29:11.568] INFO  [spring.SpringCamelContext:start]: Apache
> Camel 2.9.2 (CamelContext: camel-1) started in 0.328 sec
> onds
> [2012/04/24 14:29:12.019] INFO
>  [spring.SpringCamelContext:doStartOrResumeRouteConsumers]: Route: route1
> started and consuming fro
> m: Endpoint[http://razvoj.dev.interseek.com/test.txt]
> [2012/04/24 14:29:13.207] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.227] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.237] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.247] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.257] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.267] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.277] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.287] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.297] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.307] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.317] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.327] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.337] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:13.347] INFO  [route1:info]: Just some small text file
> ...LOTS MORE UNTIL I BREAK THE EXECUTION
> [2012/04/24 14:29:24.048] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.050] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.052] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.054] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.056] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.058] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.060] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.062] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.064] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.066] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.067] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.070] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.072] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.073] INFO  [main.MainSupport$HangupInterceptor:run]:
> Received hang up - stopping the main instance.
> [2012/04/24 14:29:24.074] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.074] INFO  [main.MainSupport:doStop]: Apache Camel
> 2.9.2 stopping
> [2012/04/24 14:29:24.075] INFO  [spring.SpringCamelContext:doStop]: Apache
> Camel 2.9.2 (CamelContext: camel-1) is shutting down
> [2012/04/24 14:29:24.076] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.076] INFO  [impl.DefaultShutdownStrategy:doShutdown]:
> Starting to graceful shutdown 1 routes (timeout 300 sec
> onds)
> [2012/04/24 14:29:24.078] INFO  [route1:info]: Just some small text file
> [2012/04/24 14:29:24.079] INFO  [impl.DefaultShutdownStrategy:run]: Route:
> route1 shutdown complete, was consuming from: Endpoint[
> http://razvoj.dev.interseek.com/test.txt]
> [2012/04/24 14:29:24.079] INFO  [impl.DefaultShutdownStrategy:doShutdown]:
> Graceful shutdown of 1 routes completed in 0 seconds
> [2012/04/24 14:29:24.081] INFO  [quartz.QuartzComponent:doStop]: There are
> no more jobs registered, so shutting down Quartz schedu
> ler: DefaultQuartzScheduler-camel-1
> [2012/04/24 14:29:24.082] INFO  [core.QuartzScheduler:shutdown]: Scheduler
> DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED shutting
>  down.
> [2012/04/24 14:29:24.082] INFO  [core.QuartzScheduler:standby]: Scheduler
> DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED paused.
> [2012/04/24 14:29:24.082] INFO  [core.QuartzScheduler:shutdown]: Scheduler
> DefaultQuartzScheduler-camel-1_$_NON_CLUSTERED shutdown
>  complete.
> [2012/04/24 14:29:24.083] INFO  [impl.DefaultInflightRepository:doStop]:
> Shutting down with no inflight exchanges.
> [2012/04/24 14:29:24.084] INFO  [spring.SpringCamelContext:doStop]: Uptime:
> 12.845 seconds
> [2012/04/24 14:29:24.085] INFO  [spring.SpringCamelContext:doStop]: Apache
> Camel 2.9.2 (CamelContext: camel-1) is shutdown in 0.00
> 9 seconds
>
> The cron expression
>
> cronPolicy.setRouteStartTime("0 0/1 * * * ?");
>
> waits correctly on the first minute to start consuming, but then it prints
> out the contents of the file just like the above example - every few
> milliseconds.
>
> Is CronScheduledRoutePolicy meant for something different or is this a bug?
>
> Cheers,
> borut



-- 
Claus Ibsen
-----------------
CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/