com.lmax.disruptor.WaitStrategy类的使用及代码示例

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

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

WaitStrategy介绍

[英]Strategy employed for making EventProcessors wait on a cursor Sequence.
[中]使事件处理器等待光标序列的策略。

代码示例

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

  1. @Override
  2. public void signalAllWhenBlocking()
  3. {
  4. fallbackStrategy.signalAllWhenBlocking();
  5. }
  6. }

代码示例来源: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: mzheravin/exchange-core

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

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

  1. @Override
  2. public void alert()
  3. {
  4. alerted = true;
  5. waitStrategy.signalAllWhenBlocking();
  6. }

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

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

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

  1. /**
  2. * @see Sequencer#publish(long)
  3. */
  4. @Override
  5. public void publish(final long sequence)
  6. {
  7. setAvailable(sequence);
  8. waitStrategy.signalAllWhenBlocking();
  9. }

代码示例来源: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: LMAX-Exchange/disruptor

  1. /**
  2. * @see Sequencer#publish(long, long)
  3. */
  4. @Override
  5. public void publish(long lo, long hi)
  6. {
  7. for (long l = lo; l <= hi; l++)
  8. {
  9. setAvailable(l);
  10. }
  11. waitStrategy.signalAllWhenBlocking();
  12. }

代码示例来源: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: LMAX-Exchange/disruptor

  1. /**
  2. * @see Sequencer#publish(long)
  3. */
  4. @Override
  5. public void publish(long sequence)
  6. {
  7. cursor.set(sequence);
  8. waitStrategy.signalAllWhenBlocking();
  9. }

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

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

代码示例来源:origin: alibaba/jstorm

  1. /**
  2. * @see Sequencer#publish(long)
  3. */
  4. @Override
  5. public void publish(final long sequence) {
  6. setAvailable(sequence);
  7. waitStrategy.signalAllWhenBlocking();
  8. }

代码示例来源: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: alibaba/jstorm

  1. /**
  2. * @see Sequencer#publish(long)
  3. */
  4. @Override
  5. public void publish(long sequence) {
  6. cursor.set(sequence);
  7. waitStrategy.signalAllWhenBlocking();
  8. }

代码示例来源: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: alibaba/jstorm

  1. /**
  2. * @see Sequencer#publish(long, long)
  3. */
  4. @Override
  5. public void publish(long lo, long hi) {
  6. for (long l = lo; l <= hi; l++) {
  7. setAvailable(l);
  8. }
  9. waitStrategy.signalAllWhenBlocking();
  10. }

代码示例来源: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: LMAX-Exchange/disruptor

  1. @Override
  2. public void run()
  3. {
  4. try
  5. {
  6. barrier.await();
  7. if (0 != sleepTime)
  8. {
  9. Thread.sleep(sleepTime);
  10. }
  11. sequence.incrementAndGet();
  12. waitStrategy.signalAllWhenBlocking();
  13. }
  14. catch (Exception e)
  15. {
  16. e.printStackTrace();
  17. }
  18. }

代码示例来源: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: com.lmax/disruptor

  1. @Override
  2. public void signalAllWhenBlocking()
  3. {
  4. fallbackStrategy.signalAllWhenBlocking();
  5. }
  6. }

相关文章