- All Implemented Interfaces:
- AsyncProcessor, Navigate<Processor>, Processor, Service, ShutdownableService
- Direct Known Subclasses:
- Delayer, DelayInterceptor, Throttler
public abstract class DelayProcessorSupport
- extends DelegateAsyncProcessor
A useful base class for any processor which provides some kind of throttling
or delayed processing.
This implementation will block while waiting.
|Methods inherited from class org.apache.camel.impl.ServiceSupport
addChildService, doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, removeChildService, resume, shutdown, start, start, stop, suspend
protected final transient org.slf4j.Logger log
public DelayProcessorSupport(Processor processor)
public DelayProcessorSupport(Processor processor,
public boolean process(Exchange exchange,
- Description copied from interface:
- Processes the message exchange.
Processor.process(org.apache.camel.Exchange), but the caller supports having the exchange asynchronously processed.
If there was a failure processing then the caused
Exception would be set on the
- Specified by:
process in interface
process in class
exchange - the message exchange
callback - the
AsyncCallback will be invoked when the processing of the exchange is completed.
If the exchange is completed synchronously, then the callback is also invoked synchronously.
The callback should therefore be careful of starting recursive loop.
- (doneSync) true to continue execute synchronously, false to continue being executed asynchronously
- See Also:
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)
public boolean isAsyncDelayed()
public void setAsyncDelayed(boolean asyncDelayed)
public boolean isCallerRunsWhenRejected()
public void setCallerRunsWhenRejected(boolean callerRunsWhenRejected)
protected abstract long calculateDelay(Exchange exchange)
protected void delay(long delay,
- Delays the given time before continuing.
This implementation will block while waiting
delay - the delay time in millis
exchange - the exchange being processed
protected void handleSleepInterruptedException(InterruptedException e,
- Called when a sleep is interrupted; allows derived classes to handle this case differently
protected long currentSystemTime()
protected void doStart()
doStart in class