org.apache.camel.impl
Class ScheduledPollConsumer

java.lang.Object
  extended by org.apache.camel.impl.ServiceSupport
      extended by org.apache.camel.impl.DefaultConsumer
          extended by org.apache.camel.impl.ScheduledPollConsumer
All Implemented Interfaces:
Runnable, Consumer, PollingConsumerPollingStrategy, Service, ShutdownableService, SuspendableService
Direct Known Subclasses:
DefaultScheduledPollConsumer, GenericFileConsumer

public abstract class ScheduledPollConsumer
extends DefaultConsumer
implements Runnable, SuspendableService, PollingConsumerPollingStrategy

A useful base class for any consumer which is polling based

Version:

Field Summary
 
Fields inherited from class org.apache.camel.impl.DefaultConsumer
log
 
Constructor Summary
ScheduledPollConsumer(Endpoint endpoint, Processor processor)
           
ScheduledPollConsumer(Endpoint endpoint, Processor processor, ScheduledExecutorService executor)
           
 
Method Summary
 void afterPoll()
          Callback invoked after the poll.
 long beforePoll(long timeout)
          Callback invoked before the poll.
protected  void doStart()
           
protected  void doStop()
           
protected  void doSuspend()
          Implementations override this method to support customized suspend/resume.
 long getDelay()
           
 long getInitialDelay()
           
 PollingConsumerPollStrategy getPollStrategy()
           
 LoggingLevel getRunLoggingLevel()
           
 TimeUnit getTimeUnit()
           
protected  boolean isPollAllowed()
           
 boolean isStartScheduler()
           
 boolean isUseFixedDelay()
           
 void onInit()
          Callback invoked when the consumer is initialized such as when the PollingConsumer starts.
protected abstract  int poll()
          The polling method which is invoked periodically to poll this consumer
 void run()
          Invoked whenever we should be polled
 void setDelay(long delay)
           
 void setInitialDelay(long initialDelay)
           
 void setPollStrategy(PollingConsumerPollStrategy pollStrategy)
           
 void setRunLoggingLevel(LoggingLevel runLoggingLevel)
           
 void setStartScheduler(boolean startScheduler)
          Sets whether the scheduler should be started when this consumer starts.
 void setTimeUnit(TimeUnit timeUnit)
          Sets the time unit to use.
 void setUseFixedDelay(boolean useFixedDelay)
           
protected  void startScheduler()
           
 
Methods inherited from class org.apache.camel.impl.DefaultConsumer
getAsyncProcessor, getEndpoint, getExceptionHandler, getProcessor, handleException, setExceptionHandler, toString
 
Methods inherited from class org.apache.camel.impl.ServiceSupport
addChildService, doResume, doShutdown, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, removeChildService, resume, shutdown, start, start, stop, suspend
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.camel.SuspendableService
isSuspended, resume, suspend
 
Methods inherited from interface org.apache.camel.Service
start, stop
 

Constructor Detail

ScheduledPollConsumer

public ScheduledPollConsumer(Endpoint endpoint,
                             Processor processor)

ScheduledPollConsumer

public ScheduledPollConsumer(Endpoint endpoint,
                             Processor processor,
                             ScheduledExecutorService executor)
Method Detail

run

public void run()
Invoked whenever we should be polled

Specified by:
run in interface Runnable

isPollAllowed

protected boolean isPollAllowed()

getInitialDelay

public long getInitialDelay()

setInitialDelay

public void setInitialDelay(long initialDelay)

getDelay

public long getDelay()

setDelay

public void setDelay(long delay)

getTimeUnit

public TimeUnit getTimeUnit()

setTimeUnit

public void setTimeUnit(TimeUnit timeUnit)
Sets the time unit to use.

Notice that both getDelay() and getInitialDelay() are using the same time unit. So if you change this value, then take into account that the default value of getInitialDelay() is 1000. So you may to adjust this value accordingly.

Parameters:
timeUnit - the time unit.

isUseFixedDelay

public boolean isUseFixedDelay()

setUseFixedDelay

public void setUseFixedDelay(boolean useFixedDelay)

getRunLoggingLevel

public LoggingLevel getRunLoggingLevel()

setRunLoggingLevel

public void setRunLoggingLevel(LoggingLevel runLoggingLevel)

getPollStrategy

public PollingConsumerPollStrategy getPollStrategy()

setPollStrategy

public void setPollStrategy(PollingConsumerPollStrategy pollStrategy)

isStartScheduler

public boolean isStartScheduler()

setStartScheduler

public void setStartScheduler(boolean startScheduler)
Sets whether the scheduler should be started when this consumer starts.

This option is default true.

Parameters:
startScheduler - whether to start scheduler

poll

protected abstract int poll()
                     throws Exception
The polling method which is invoked periodically to poll this consumer

Returns:
number of messages polled, will be 0 if no message was polled at all.
Throws:
Exception - can be thrown if an exception occurred during polling

doStart

protected void doStart()
                throws Exception
Overrides:
doStart in class DefaultConsumer
Throws:
Exception

startScheduler

protected void startScheduler()

doStop

protected void doStop()
               throws Exception
Overrides:
doStop in class DefaultConsumer
Throws:
Exception

doSuspend

protected void doSuspend()
                  throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized suspend/resume.

Overrides:
doSuspend in class ServiceSupport
Throws:
Exception

onInit

public void onInit()
            throws Exception
Description copied from interface: PollingConsumerPollingStrategy
Callback invoked when the consumer is initialized such as when the PollingConsumer starts.

Specified by:
onInit in interface PollingConsumerPollingStrategy
Throws:
Exception - can be thrown if error initializing.

beforePoll

public long beforePoll(long timeout)
                throws Exception
Description copied from interface: PollingConsumerPollingStrategy
Callback invoked before the poll.

Specified by:
beforePoll in interface PollingConsumerPollingStrategy
Parameters:
timeout - the timeout
Returns:
timeout to be used, this allows returning a higher timeout value to ensure at least one poll is being performed
Throws:
Exception - can be thrown if error occurred

afterPoll

public void afterPoll()
               throws Exception
Description copied from interface: PollingConsumerPollingStrategy
Callback invoked after the poll.

Specified by:
afterPoll in interface PollingConsumerPollingStrategy
Throws:
Exception - can be thrown if error occurred


Apache CAMEL