Hi

You need to keep the main app running. See this FAQ
http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html

On Sat, Feb 11, 2012 at 5:01 AM, honghebox <aoesh...@gmail.com> wrote:
> My route builder has a route starts with a  cron job that executes every 5
> minutes, but it never get kicked off by quartz scheduler and from the log
> file, seems the job is removed because of routes shut down by the camel
> context, here is what I did:
> *1. the way I run camel in standalone mode:*
> java MyMain appContext.xml
> *2. MyMain class:*
> public class MyMain extends RouteBuilder {
>    public static void main(String... args)   {
>        try {
>                org.apache.camel.spring.Main.main(args);
>        }
>        catch(Exception e) {
>                e.printStackTrace();
>        }
>    }
>    public void configure()    {
>    }
> }
> *3. appContext.xml defines a camel context:*
>   <camelContext id="myCamelContext"
> xmlns="http://camel.apache.org/schema/spring";>
>         <packageScan>
>            <package>com.mycompany.routes</package>
>         .............................
> *4. my route builder:*
> public class MyCronJobRouteBuilder extends RouteBuilder {
>   public void configure() {
>      from("quartz://myGroup/myTimer?cron=0+0/5+*+*+*+?")
>                .routeId("MyCronJobRoute}")
>                .log(LoggingLevel.INFO, "My cron job started at 
> ${header.fireTime} ")
> ................................
>   }
> }
>
> the "My cron job started at ${header.fireTime}" never get logged so the cron
> job never started, from the log file, seems the route was created, scheduler
> started and the job was added to scheduler too, but it was removed from the
> scheduler when the DefaultCamelContext shuts down the route, anyone can help
> me with a solution to prevent the camel context shut down the route and
> remove the cron job? Thanks in advance ......
>
> [                          main] QuartzScheduler                INFO  Quartz
> Scheduler v.1.8.3 created.
> [                          main] RAMJobStore                    INFO
> RAMJobStore initialized.
> [                          main] QuartzScheduler                INFO
> Scheduler meta-data: Quartz Scheduler (v1.8.3) 'DefaultQuartzScheduler' 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.
>
> [                          main] StdSchedulerFactory            INFO  Quartz
> scheduler 'DefaultQuartzScheduler' initialized from default resource file in
> Quartz package: 'quartz.properties'
> [                          main] StdSchedulerFactory            INFO  Quartz
> scheduler version: 1.8.3
> [                          main] QuartzComponent                INFO
> Starting Quartz scheduler: DefaultQuartzScheduler
> [                          main] QuartzScheduler                INFO
> Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
>
> [                          main] DefaultComponent               DEBUG
> Creating endpoint uri=[quartz://myGroup/myTimer?cron=0+0%2F5+*+*+*+%3F],
> path=[myGroup/myTimer], parameters=[{cron=0 0/5 * * * ?}]
> [                          main] DefaultCamelContext            DEBUG
> quartz://myGroup/myTimer?cron=0+0%2F5+*+*+*+%3F converted to endpoint:
> Endpoint[quartz://myGroup/myTimer?cron=0+0%2F5+*+*+*+%3F] by component:
> org.apache.camel.component.quartz.QuartzComponent@487c5f
> [                          main] QuartzConsumer                 DEBUG
> Starting consumer: Consumer[quartz://myGroup/myTimer?cron=0+0%2F5+*+*+*+%3F]
> [                          main] QuartzEndpoint                 DEBUG Adding
> consumer Instrumentation:route[UnitOfWork(Pipeline[[Channel[Log[My cron job
> started at ${header.fireTime}, cron job expression -
> quartz://myGroup/myTimer?cron=0+0+0/4+*+*+?]], Channel[BeanProcessor[bean:
> ...................................................................
>
> *[                          main] QuartzComponent                DEBUG
> Adding job using trigger: *staleMeter/staleMeterDetectionTimer
> [                          main] DefaultCamelContext            INFO  Route:
> quartz:MyCronJobRoute started and consuming from:
> Endpoint[quartz://myGroup/myTimer?cron=0+0%2F5+*+*+*+%3F]
>
> ...................................
>
> [                          main] DefaultExecutorServiceStrategy DEBUG
> ShutdownNow ExecutorService: java.util.concurrent.ThreadPoolExecutor@a84b47
> [                          main] DefaultCamelContext            INFO  Apache
> Camel 2.5.0 (CamelContext:myCamelContext) is shutting down
> [                          main] DefaultShutdownStrategy        INFO
> Starting to graceful shutdown 1 routes (timeout 10 seconds)
> [ Camel Thread 0 - ShutdownTask] QuartzComponent                DEBUG
> Pausing job using trigger: myGroup/myTimer
> *[ Camel Thread 0 - ShutdownTask] QuartzEndpoint                 DEBUG
> Removing consumer* Instrumentation:route[UnitOfWork(Pipeline[[Channel[Log[My
> cron job started at ${header.fireTime}]],
> ...................
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Cron-job-removed-from-quartz-scheduler-by-DefaultCamelContext-tp5474330p5474330.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
FuseSource
Email: cib...@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to