Using the Timer Component with Camel



The Timer component is used to generate message exchanges when a timer fires. The Timer is a simple, non persistence timer using the JDK's in built timer mechanism.

package com.sample;

import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.spi.DataFormat;

public class Timer {

	public static void main(String args[]) throws Exception {
		CamelContext context = new DefaultCamelContext();

		context.addRoutes(new RouteBuilder() {
			public void configure() throws Exception {
				from("timer://foo?period=1000").process(new Processor() {
					@Override
					public void process(Exchange exchange) throws Exception {
						System.out.println("Hello world  :"
								+ new java.util.Date().toString());
					}
				});
			}

		});
		context.start();
		Thread.sleep(10000);
		context.stop();
	}
}

Using Quartz to fire timed based events

Quartz uses the Quartz library which uses a database to store timer events and supports distributed timers and cron notation

import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
 
 
public class QuartzRoute extends RouteBuilder {
 
 
    @Override
    public void configure() throws Exception {
 
 
        from("quartz://myGroupName/myTimerName?cron=0/5+*+*+*+*+?")
        .process(new Processor() {
            @Override
            public void process(Exchange exchange) throws Exception {
                System.out.println("I'm running every 5 sec...");
            }
        });
    }
}

In order to use the Quartz component, you need to include camel-quartz library to your project:

<dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-quartz</artifactId>
          <version>${camel.version}</version>
</dependency>

 

FREE WildFly Application Server - JBoss - Quarkus - Drools Tutorials
Cookie Policy

Cookie Policy This website uses cookies that are necessary to its functioning and required to achieve the purposes illustrated in the privacy policy. By accepting this OR scrolling this page OR continuing to browse, you agree to our privacy policy.

© 2020 Your Company. All Rights Reserved. Designed By JoomShaper

Please publish modules in offcanvas position.