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 <[email protected]> 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: [email protected] Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/
