com.lmax.disruptor.WaitStrategy.waitFor()方法的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(4.2k)|赞(0)|评价(0)|浏览(124)

本文整理了Java中com.lmax.disruptor.WaitStrategy.waitFor()方法的一些代码示例,展示了WaitStrategy.waitFor()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WaitStrategy.waitFor()方法的具体详情如下:
包路径:com.lmax.disruptor.WaitStrategy
类名称:WaitStrategy
方法名:waitFor

WaitStrategy.waitFor介绍

[英]Wait 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. The BatchEventProcessor explicitly handles this case and will signal a timeout if required.
[中]等待给定的序列可用。根据WaitStrategy的实现,此方法返回的值可能小于提供的序列号。这种方法的一个常见用途是发出超时信号。任何使用WaitStrategy获取消息可用通知的EventProcessor都应该记住处理这种情况。BatchEventProcessor会显式处理这种情况,并在需要时发出超时信号。

代码示例

代码示例来源:origin: LMAX-Exchange/disruptor

  1. @Override
  2. public long waitFor(final long sequence)
  3. throws AlertException, InterruptedException, TimeoutException
  4. {
  5. checkAlert();
  6. long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this);
  7. if (availableSequence < sequence)
  8. {
  9. return availableSequence;
  10. }
  11. return sequencer.getHighestPublishedSequence(sequence, availableSequence);
  12. }

代码示例来源:origin: LMAX-Exchange/disruptor

  1. if (timeDelta > yieldTimeoutNanos)
  2. return fallbackStrategy.waitFor(sequence, cursor, dependentSequence, barrier);

代码示例来源:origin: LMAX-Exchange/disruptor

  1. public static void assertWaitForWithDelayOf(long sleepTimeMillis, WaitStrategy waitStrategy)
  2. throws InterruptedException, BrokenBarrierException, AlertException, TimeoutException
  3. {
  4. SequenceUpdater sequenceUpdater = new SequenceUpdater(sleepTimeMillis, waitStrategy);
  5. EXECUTOR.execute(sequenceUpdater);
  6. sequenceUpdater.waitForStartup();
  7. Sequence cursor = new Sequence(0);
  8. long sequence = waitStrategy.waitFor(0, cursor, sequenceUpdater.sequence, new DummySequenceBarrier());
  9. assertThat(sequence, is(0L));
  10. }
  11. }

代码示例来源:origin: com.lmax/disruptor

  1. @Override
  2. public long waitFor(final long sequence)
  3. throws AlertException, InterruptedException, TimeoutException
  4. {
  5. checkAlert();
  6. long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this);
  7. if (availableSequence < sequence)
  8. {
  9. return availableSequence;
  10. }
  11. return sequencer.getHighestPublishedSequence(sequence, availableSequence);
  12. }

代码示例来源:origin: com.lmax/disruptor

  1. if (timeDelta > yieldTimeoutNanos)
  2. return fallbackStrategy.waitFor(sequence, cursor, dependentSequence, barrier);

代码示例来源:origin: camunda/camunda-bpm-reactor

  1. @Override
  2. public long waitFor(long sequence, Sequence cursor, Sequence dependentSequence, SequenceBarrier barrier)
  3. throws AlertException, InterruptedException, TimeoutException {
  4. return currentStrategy.waitFor(sequence, cursor, dependentSequence, barrier);
  5. }

代码示例来源:origin: xiaoguichao/mr

  1. if (timeDelta > yieldTimeoutNanos)
  2. return fallbackStrategy.waitFor(sequence, cursor, dependentSequence, barrier);

代码示例来源:origin: harbby/presto-connectors

  1. @Override
  2. public long waitFor(final long sequence)
  3. throws AlertException, InterruptedException, TimeoutException
  4. {
  5. checkAlert();
  6. long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this);
  7. if (availableSequence < sequence)
  8. {
  9. return availableSequence;
  10. }
  11. return sequencer.getHighestPublishedSequence(sequence, availableSequence);
  12. }

代码示例来源:origin: harbby/presto-connectors

  1. if (timeDelta > yieldTimeoutNanos)
  2. return fallbackStrategy.waitFor(sequence, cursor, dependentSequence, barrier);

代码示例来源:origin: mzheravin/exchange-core

  1. @Override
  2. public long waitFor(final long sequence)
  3. throws AlertException, InterruptedException, TimeoutException {
  4. checkAlert();
  5. long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this);
  6. if (availableSequence < sequence) {
  7. return availableSequence;
  8. }
  9. return sequencer.getHighestPublishedSequence(sequence, availableSequence);
  10. }

代码示例来源:origin: xiaoguichao/mr

  1. @Override
  2. public long waitFor(final long sequence)
  3. throws AlertException, InterruptedException, TimeoutException
  4. {
  5. checkAlert();
  6. long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this);
  7. if (availableSequence < sequence)
  8. {
  9. return availableSequence;
  10. }
  11. return sequencer.getHighestPublishedSequence(sequence, availableSequence);
  12. }

代码示例来源:origin: mzheravin/exchange-core

  1. if (timeDelta > yieldTimeoutNanos)
  2. return fallbackStrategy.waitFor(sequence, cursor, dependentSequence, barrier);

相关文章