-
- All Known Implementing Classes:
BlockingWaitStrategy,BusySpinWaitStrategy,LiteBlockingWaitStrategy,LiteTimeoutBlockingWaitStrategy,PhasedBackoffWaitStrategy,SleepingWaitStrategy,TimeoutBlockingWaitStrategy,YieldingWaitStrategy
public interface WaitStrategyStrategy employed for makingEventProcessors wait on a cursorSequence.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidsignalAllWhenBlocking()Implementations should signal the waitingEventProcessors that the cursor has advanced.longwaitFor(long sequence, Sequence cursor, Sequence dependentSequence, SequenceBarrier barrier)Wait for the given sequence to be available.
-
-
-
Method Detail
-
waitFor
long waitFor(long sequence, Sequence cursor, Sequence dependentSequence, SequenceBarrier barrier) throws AlertException, java.lang.InterruptedException, TimeoutExceptionWait for the given sequence to be available. It is possible for this method to return a value less than the sequence number supplied depending on the implementation of the WaitStrategy. A common use for this is to signal a timeout. Any EventProcessor that is using a WaitStrategy to get notifications about message becoming available should remember to handle this case. TheBatchEventProcessorexplicitly handles this case and will signal a timeout if required.- Parameters:
sequence- to be waited on.cursor- the main sequence from ringbuffer. Wait/notify strategies will need this as it's the only sequence that is also notified upon update.dependentSequence- on which to wait.barrier- the processor is waiting on.- Returns:
- the sequence that is available which may be greater than the requested sequence.
- Throws:
AlertException- if the status of the Disruptor has changed.java.lang.InterruptedException- if the thread is interrupted.TimeoutException- if a timeout occurs before waiting completes (not used by some strategies)
-
signalAllWhenBlocking
void signalAllWhenBlocking()
Implementations should signal the waitingEventProcessors that the cursor has advanced.
-
-