- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中com.lmax.disruptor.YieldingWaitStrategy.<init>()
方法的一些代码示例,展示了YieldingWaitStrategy.<init>()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。YieldingWaitStrategy.<init>()
方法的具体详情如下:
包路径:com.lmax.disruptor.YieldingWaitStrategy
类名称:YieldingWaitStrategy
方法名:<init>
暂无
代码示例来源:origin: crossoverJie/JCSprout
new YieldingWaitStrategy());
代码示例来源:origin: Graylog2/graylog2-server
private WaitStrategy getWaitStrategy(String waitStrategyName, String configOptionName) {
switch (waitStrategyName) {
case "sleeping":
return new SleepingWaitStrategy();
case "yielding":
return new YieldingWaitStrategy();
case "blocking":
return new BlockingWaitStrategy();
case "busy_spinning":
return new BusySpinWaitStrategy();
default:
LOG.warn("Invalid setting for [{}]:"
+ " Falling back to default: BlockingWaitStrategy.", configOptionName);
return new BlockingWaitStrategy();
}
}
代码示例来源:origin: Graylog2/graylog2-server
protected WaitStrategy getWaitStrategy(String waitStrategyName, String configOptionName) {
switch (waitStrategyName) {
case "sleeping":
return new SleepingWaitStrategy();
case "yielding":
return new YieldingWaitStrategy();
case "blocking":
return new BlockingWaitStrategy();
case "busy_spinning":
return new BusySpinWaitStrategy();
default:
log.warn("Invalid setting for [{}]:"
+ " Falling back to default: BlockingWaitStrategy.", configOptionName);
return new BlockingWaitStrategy();
}
}
代码示例来源:origin: LMAX-Exchange/disruptor
@Test
public void shouldWaitForValue() throws Exception
{
assertWaitForWithDelayOf(50, new YieldingWaitStrategy());
}
}
代码示例来源:origin: fengjiachun/Jupiter
break;
case YIELDING_WAIT:
waitStrategy = new YieldingWaitStrategy();
break;
case BUSY_SPIN_WAIT:
代码示例来源:origin: fengjiachun/Jupiter
break;
case YIELDING_WAIT:
waitStrategy = new YieldingWaitStrategy();
break;
case BUSY_SPIN_WAIT:
代码示例来源:origin: org.projectreactor/reactor-core
/**
* Set {@link com.lmax.disruptor.YieldingWaitStrategy} as wait strategy.
*
* @return {@literal this}
*/
public ProcessorSpec<T> yieldingWaitStrategy() {
this.waitStrategy = new YieldingWaitStrategy();
return this;
}
代码示例来源:origin: com.srotya/linea
@SuppressWarnings("unchecked")
public BoltExecutorWrapper(TupleFactory<E> factory, ExecutorService pool, Bolt<E> processor) {
this.pool = pool;
this.bolt = processor;
disruptor = new Disruptor<>(factory, 1024 * 8, pool, ProducerType.MULTI, new YieldingWaitStrategy());
disruptor.handleEventsWith(this);
}
代码示例来源:origin: camunda/camunda-bpm-reactor
public AgileWaitingStrategy() {
this(new BlockingWaitStrategy(), new YieldingWaitStrategy());
}
代码示例来源:origin: mzheravin/exchange-core
public WaitStrategy create() {
switch (this) {
case SLEEPING:
return new SleepingWaitStrategy();
case BUSY_SPIN:
return new BusySpinWaitStrategy();
case YIELDING:
default:
return new YieldingWaitStrategy();
}
}
代码示例来源:origin: org.graylog2/graylog2-server
private WaitStrategy getWaitStrategy(String waitStrategyName, String configOptionName) {
switch (waitStrategyName) {
case "sleeping":
return new SleepingWaitStrategy();
case "yielding":
return new YieldingWaitStrategy();
case "blocking":
return new BlockingWaitStrategy();
case "busy_spinning":
return new BusySpinWaitStrategy();
default:
LOG.warn("Invalid setting for [{}]:"
+ " Falling back to default: BlockingWaitStrategy.", configOptionName);
return new BlockingWaitStrategy();
}
}
代码示例来源:origin: org.graylog2/graylog2-server
protected WaitStrategy getWaitStrategy(String waitStrategyName, String configOptionName) {
switch (waitStrategyName) {
case "sleeping":
return new SleepingWaitStrategy();
case "yielding":
return new YieldingWaitStrategy();
case "blocking":
return new BlockingWaitStrategy();
case "busy_spinning":
return new BusySpinWaitStrategy();
default:
log.warn("Invalid setting for [{}]:"
+ " Falling back to default: BlockingWaitStrategy.", configOptionName);
return new BlockingWaitStrategy();
}
}
代码示例来源:origin: org.apache.omid/tso-server
@Inject
RetryProcessorImpl(MetricsRegistry metrics,
CommitTable commitTable,
ReplyProcessor replyProc,
Panicker panicker,
ObjectPool<Batch> batchPool)
throws InterruptedException, ExecutionException, IOException {
this.commitTableClient = commitTable.getClient();
this.replyProc = replyProc;
this.batchPool = batchPool;
retryRing = RingBuffer.createSingleProducer(RetryEvent.EVENT_FACTORY, 1 << 12, new YieldingWaitStrategy());
SequenceBarrier retrySequenceBarrier = retryRing.newBarrier();
BatchEventProcessor<RetryEvent> retryProcessor = new BatchEventProcessor<>(retryRing, retrySequenceBarrier, this);
retryProcessor.setExceptionHandler(new FatalExceptionHandler(panicker));
retryRing.addGatingSequences(retryProcessor.getSequence());
ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("retry-%d").build();
ExecutorService retryExec = Executors.newSingleThreadExecutor(threadFactory);
retryExec.submit(retryProcessor);
// Metrics configuration
retriesMeter = metrics.meter(name("tso", "retries"));
}
代码示例来源:origin: devicehive/devicehive-java-server
private WaitStrategy getWaitStrategy() {
logger.info("RPC server wait strategy: {}", waitStrategy);
WaitStrategy strategy;
switch (waitStrategy) {
case "blocking":
strategy = new BlockingWaitStrategy();
break;
case "sleeping":
strategy = new SleepingWaitStrategy();
break;
case "yielding":
strategy = new YieldingWaitStrategy();
break;
case "busyspin":
strategy = new BusySpinWaitStrategy();
break;
default:
strategy = new BlockingWaitStrategy();
break;
}
return strategy;
}
代码示例来源:origin: dmart28/reveno
protected WaitStrategy createWaitStrategy() {
switch (cpuConsumption()) {
case LOW:
return new BlockingWaitStrategy();
case NORMAL:
return new SleepingWaitStrategy();
case HIGH:
return new YieldingWaitStrategy();
case PHASED:
return PhasedBackoffWaitStrategy.withLiteLock((int) 2.5e5, (int) 8.5e5,
TimeUnit.NANOSECONDS);
}
return null;
}
代码示例来源:origin: ops4j/org.ops4j.pax.logging
static WaitStrategy createWaitStrategy(final String propertyName, final long timeoutMillis) {
final String strategy = PropertiesUtil.getProperties().getStringProperty(propertyName, "TIMEOUT");
LOGGER.trace("property {}={}", propertyName, strategy);
final String strategyUp = strategy.toUpperCase(Locale.ROOT); // TODO Refactor into Strings.toRootUpperCase(String)
switch (strategyUp) { // TODO Define a DisruptorWaitStrategy enum?
case "SLEEP":
return new SleepingWaitStrategy();
case "YIELD":
return new YieldingWaitStrategy();
case "BLOCK":
return new BlockingWaitStrategy();
case "BUSYSPIN":
return new BusySpinWaitStrategy();
case "TIMEOUT":
return new TimeoutBlockingWaitStrategy(timeoutMillis, TimeUnit.MILLISECONDS);
default:
return new TimeoutBlockingWaitStrategy(timeoutMillis, TimeUnit.MILLISECONDS);
}
}
代码示例来源:origin: devicehive/devicehive-java-server
private WaitStrategy getWaitStrategy(String strategy) {
WaitStrategy waitStrategy;
switch (strategy) {
case "blocking":
waitStrategy = new BlockingWaitStrategy();
break;
case "sleeping":
waitStrategy = new SleepingWaitStrategy();
break;
case "yielding":
waitStrategy = new YieldingWaitStrategy();
break;
case "busyspin":
waitStrategy = new BusySpinWaitStrategy();
break;
default:
waitStrategy = new BlockingWaitStrategy();
break;
}
return waitStrategy;
}
}
代码示例来源:origin: devicehive/devicehive-java-server
private WaitStrategy getWaitStrategy() {
WaitStrategy strategy;
switch (proxyConfig.getWaitStrategy()) {
case "blocking":
strategy = new BlockingWaitStrategy();
break;
case "sleeping":
strategy = new SleepingWaitStrategy();
break;
case "yielding":
strategy = new YieldingWaitStrategy();
break;
case "busyspin":
strategy = new BusySpinWaitStrategy();
break;
default:
strategy = new BlockingWaitStrategy();
break;
}
return strategy;
}
}
代码示例来源:origin: org.fabric3/fabric3-channel-disruptor
private WaitStrategy createWaitStrategy(RingBufferData data) {
switch (data.getWaitStrategy()) {
case YIELDING:
return new YieldingWaitStrategy();
case SLEEPING:
return new SleepingWaitStrategy();
case BACKOFF:
if (RingBufferData.PhasedBlockingType.LOCK == data.getPhasedBlockingType()) {
return PhasedBackoffWaitStrategy.withLock(data.getSpinTimeoutNanos(), data.getYieldTimeoutNanos(), TimeUnit.NANOSECONDS);
} else {
return PhasedBackoffWaitStrategy.withSleep(data.getSpinTimeoutNanos(), data.getYieldTimeoutNanos(), TimeUnit.NANOSECONDS);
}
case SPIN:
return new BusySpinWaitStrategy();
case TIMEOUT:
return new TimeoutBlockingWaitStrategy(data.getBlockingTimeoutNanos(), TimeUnit.NANOSECONDS);
default:
return new BlockingWaitStrategy();
}
}
代码示例来源:origin: org.codehaus.fabric3/fabric3-channel-disruptor
private WaitStrategy createWaitStrategy(RingBufferData data) {
switch (data.getWaitStrategy()) {
case YIELDING:
return new YieldingWaitStrategy();
case SLEEPING:
return new SleepingWaitStrategy();
case BACKOFF:
if (RingBufferData.PhasedBlockingType.LOCK == data.getPhasedBlockingType()) {
return PhasedBackoffWaitStrategy.withLock(data.getSpinTimeoutNanos(), data.getYieldTimeoutNanos(), TimeUnit.NANOSECONDS);
} else {
return PhasedBackoffWaitStrategy.withSleep(data.getSpinTimeoutNanos(), data.getYieldTimeoutNanos(), TimeUnit.NANOSECONDS);
}
case SPIN:
return new BusySpinWaitStrategy();
case TIMEOUT:
return new TimeoutBlockingWaitStrategy(data.getBlockingTimeoutNanos(), TimeUnit.NANOSECONDS);
default:
return new BlockingWaitStrategy();
}
}
我正在对 Disruptor 队列的内部 C 实现进行性能测试,我很乐意对其他类似的非线程事件流处理方法进行基准测试。 Google 上的内容很少,因此非常感谢任何指点或建议。 最佳答案 这里有一个C
我试图理解 disruptor pattern 。我观看了 InfoQ 视频并尝试阅读他们的论文。我知道涉及一个环形缓冲区,它被初始化为一个非常大的数组,以利用缓存局部性,消除新内存的分配。 听起来好
我对破坏者模式做了一些研究,但有一件事我无法理解。 有生产者,它们为环形缓冲区提供条目。有环形缓冲区,基本上是一个固定但无限的数组。有消费者(基本上是独立的线程),处理来自环形缓冲区的条目。 我试图讲
我已经了解了 LMAX 和这个叫做 RingBuffer 的美妙概念。所以人们告诉我们,当只用一个线程写入环形缓冲区时,性能比多个生产者要好得多...... 但是我真的不觉得典型的应用程序可以只使用一
我希望我能得到最简单的示例代码,它将展示如何使用 LMAX disruptor(http://code.google.com/p/disruptor/)。 不幸的是,每段代码都已过时。有人知道吗,我在
本文整理了Java中com.lmax.disruptor.YieldingWaitStrategy类的一些代码示例,展示了YieldingWaitStrategy类的具体用法。这些代码示例主要来源于G
考虑来自 LMAX Architecture description from Martin Fowler 的以下场景: I'll use a simple non-LMAX example to i
我对 LMAX Disruptor 的理解它是一个 JAR,充满了速度惊人、并发的 Java 代码,每秒可实现 2000 万条消息的吞吐量(如果使用正确)。 我们目前的 ActiveMQ 实例对于我们
有什么办法可以在一个结构中同时拥有这两种功能 - BlockingQueue 的语义,即非阻塞 peek、阻塞 poll 和阻塞 put。多个提供者一个消费者。 RingBuffer,它有效地充当对象
我在 Healpy 文档中发现 healpy.anafast lmax 的默认值为 3*nside-1 制定这个标准有什么理由吗?它是 HEALPix 内的标准,还是 CMB 实验的标准,或者可能有物
试图理解下面的(部分)堆栈跟踪。使用spring的项目reactor 2.0.4。 我得到了任务调度程序线程,它们应该创建任务并为工作线程分配任务。应用程序此时挂起(工作线程未记录任何内容,在不同时间
您能否提供一个使用 LMAX Disruptor 模式实现并行排序或并行最大值查找的代码示例链接。 最佳答案 其实不太适用。干扰器本质上就像一个带有处理程序的管道,独立地访问每个项目,但它的实现方式非
我需要从 mongodb 存储和获取大量数据,所以我被要求使用 lmax Disruptor 接收和存储数据,我已经花了几天时间在 lmax github 帐户上寻找一个简单的教程,但我不太明白如何将
我最近一直在学习 LMAX Disruptor 并进行了一些实验。令我困惑的一件事是 EventHandler 的 onEvent 处理程序方法的 endOfBatch 参数。考虑我的以下代码。首先,
我也在考虑将干扰器模式集成到我们的应用程序中。在开始使用 disruptor 之前,我对一些事情有点不确定 我有 3 个生产者,主要是一个对请求进行反序列化的 FIX 线程。随着市场的变化不断修改订单
LMAX Disruptor“入门”中的示例代码... public class LongEvent { private long value; public void set(lon
如何监控 LMAX Disruptor?假设我有 3 个环形缓冲区,并希望提供一个 UI 来给我环形缓冲区的信息。 最佳答案 您可能想要监控的最重要的属性是剩余容量,以便您可以判断消费者是否跟上。 公
在使用破坏者时,可能会有一个消费者滞后,并且由于消费者缓慢,整个应用程序都会受到影响。 请记住,每个生产者(Publisher)和消费者(EventProcessor)都在单个线程上运行,那么慢消费者
只是回顾一下我的计划,看看它是否可行。 我正在使用 RDBMS 并计划在没有事件源的情况下使用 CQRS。我认为事件溯源对于第一次尝试来说有点先进,我不得不使用 RDBMS。 基于任务的 UI 由许多
熟悉的人lmax ring buffer (disruptor)知道该数据结构的最大优点之一是它可以对传入事件进行批处理,当我们有一个消费者可以利用批处理使系统自动适应负载时,你抛给它的事件越多越好。
我是一名优秀的程序员,十分优秀!