public class SimpleBufferTriggerBuilder<E,C> extends Object
| Constructor and Description |
|---|
SimpleBufferTriggerBuilder() |
| Modifier and Type | Method and Description |
|---|---|
<E1> BufferTrigger<E1> |
build() |
<E1,C1> SimpleBufferTriggerBuilder<E1,C1> |
consumer(com.github.phantomthief.util.ThrowableConsumer<? super C1,Throwable> consumer) |
SimpleBufferTriggerBuilder<E,C> |
disableSwitchLock() |
<E1,C1> SimpleBufferTriggerBuilder<E1,C1> |
enableBackPressure()
开启背压(back-pressure)能力
注意,当开启背压时,需要配合
maxBufferCount(long)
并且不要设置 rejectHandler
当buffer达到最大值时,会阻塞入队线程,直到消费完当前buffer后再继续执行 |
SimpleBufferTriggerBuilder<E,C> |
interval(LongSupplier interval,
TimeUnit unit) |
SimpleBufferTriggerBuilder<E,C> |
interval(long interval,
TimeUnit unit) |
SimpleBufferTriggerBuilder<E,C> |
maxBufferCount(long count)
it's better dealing this in container
|
<E1,C1> SimpleBufferTriggerBuilder<E1,C1> |
maxBufferCount(long count,
Consumer<? super E1> rejectHandler)
it's better dealing this in container
|
SimpleBufferTriggerBuilder<E,C> |
maxBufferCount(LongSupplier count)
it's better dealing this in container
|
SimpleBufferTriggerBuilder<E,C> |
name(String name)
use for debug and stats, like trigger thread's name.
|
SimpleBufferTriggerBuilder<E,C> |
on(long interval,
TimeUnit unit,
long count)
Deprecated.
|
<E1,C1> SimpleBufferTriggerBuilder<E1,C1> |
rejectHandler(Consumer<? super E1> rejectHandler)
it's better dealing this in container
|
<E1,C1> SimpleBufferTriggerBuilder<E1,C1> |
setContainer(Supplier<? extends C1> factory,
BiPredicate<? super C1,? super E1> queueAdder)
warning: the container must be thread-safe.
|
<E1,C1> SimpleBufferTriggerBuilder<E1,C1> |
setContainerEx(Supplier<? extends C1> factory,
ToIntBiFunction<? super C1,? super E1> queueAdder)
warning: the container must be thread-safed.
|
<E1,C1> SimpleBufferTriggerBuilder<E1,C1> |
setExceptionHandler(BiConsumer<? super Throwable,? super C1> exceptionHandler) |
SimpleBufferTriggerBuilder<E,C> |
setScheduleExecutorService(ScheduledExecutorService scheduledExecutorService) |
SimpleBufferTriggerBuilder<E,C> |
triggerStrategy(SimpleBufferTrigger.TriggerStrategy triggerStrategy) |
public <E1,C1> SimpleBufferTriggerBuilder<E1,C1> setContainer(Supplier<? extends C1> factory, BiPredicate<? super C1,? super E1> queueAdder)
setContainerEx(java.util.function.Supplier<? extends C1>, java.util.function.ToIntBiFunction<? super C1, ? super E1>)queueAdder - return if there is a change occurred.public <E1,C1> SimpleBufferTriggerBuilder<E1,C1> setContainerEx(Supplier<? extends C1> factory, ToIntBiFunction<? super C1,? super E1> queueAdder)
queueAdder - return the change size occurred.public SimpleBufferTriggerBuilder<E,C> setScheduleExecutorService(ScheduledExecutorService scheduledExecutorService)
public <E1,C1> SimpleBufferTriggerBuilder<E1,C1> setExceptionHandler(BiConsumer<? super Throwable,? super C1> exceptionHandler)
public SimpleBufferTriggerBuilder<E,C> disableSwitchLock()
public SimpleBufferTriggerBuilder<E,C> triggerStrategy(SimpleBufferTrigger.TriggerStrategy triggerStrategy)
@Deprecated public SimpleBufferTriggerBuilder<E,C> on(long interval, TimeUnit unit, long count)
public SimpleBufferTriggerBuilder<E,C> interval(long interval, TimeUnit unit)
public SimpleBufferTriggerBuilder<E,C> interval(LongSupplier interval, TimeUnit unit)
public <E1,C1> SimpleBufferTriggerBuilder<E1,C1> consumer(com.github.phantomthief.util.ThrowableConsumer<? super C1,Throwable> consumer)
public SimpleBufferTriggerBuilder<E,C> maxBufferCount(long count)
public SimpleBufferTriggerBuilder<E,C> maxBufferCount(@Nonnull LongSupplier count)
public <E1,C1> SimpleBufferTriggerBuilder<E1,C1> maxBufferCount(long count, Consumer<? super E1> rejectHandler)
public <E1,C1> SimpleBufferTriggerBuilder<E1,C1> rejectHandler(Consumer<? super E1> rejectHandler)
public <E1,C1> SimpleBufferTriggerBuilder<E1,C1> enableBackPressure()
maxBufferCount(long)
并且不要设置 rejectHandler
当buffer达到最大值时,会阻塞入队线程,直到消费完当前buffer后再继续执行public SimpleBufferTriggerBuilder<E,C> name(String name)
public <E1> BufferTrigger<E1> build()
Copyright © 2019. All rights reserved.