public class ITimeFlusher<RequestType,ResponseType>
extends IQuotaFlusher
定时刷盘 使用 startTimernewTimeout() 即 newTimeout() 来设置一次定时flush(), 但是不需要递归调用, 因为flush()会清理所有当前所有请求, 也就暂时没有再来 startTimer() 即 newTimeout() 的必要 以后只要调用 add() 添加请求, 就主动触发定时器, 参考 tryFlushWhenAdd(), 这样就很节省定时器资源, 虽然说定时不及时
IFlusher.DefaultImpls| 构造器和说明 |
|---|
ITimeFlusher(int flushQuota,
long flushTimeoutMillis)
定时刷盘
使用 startTimernewTimeout() 即 newTimeout() 来设置一次定时flush(), 但是不需要递归调用, 因为flush()会清理所有当前所有请求, 也就暂时没有再来 startTimer() 即 newTimeout() 的必要
以后只要调用 add() 添加请求, 就主动触发定时器, 参考 tryFlushWhenAdd(), 这样就很节省定时器资源, 虽然说定时不及时
|
| 限定符和类型 | 方法和说明 |
|---|---|
long |
getFlushTimeoutMillis() |
java.util.concurrent.atomic.AtomicInteger |
getTimerState()
定时器状态: 0: 已停止 / 非0: 进行中
用于控制是否停止定时器
|
void |
startTimer()
启动刷盘的定时任务
|
void |
tryFlushWhenAdd(int currRequestCount)
空 -> 非空: 启动定时
在添加请求时调用
|
currIndex, doFlush, flush, getExecutor, getFlushQuota, getLock, getSwitch, isRequestEmpty, setSwitch, tryFlushWhenAddadd, flush, isRequestEmpty, requestCountpublic ITimeFlusher(int flushQuota,
long flushTimeoutMillis)
定时刷盘 使用 startTimernewTimeout() 即 newTimeout() 来设置一次定时flush(), 但是不需要递归调用, 因为flush()会清理所有当前所有请求, 也就暂时没有再来 startTimer() 即 newTimeout() 的必要 以后只要调用 add() 添加请求, 就主动触发定时器, 参考 tryFlushWhenAdd(), 这样就很节省定时器资源, 虽然说定时不及时
public java.util.concurrent.atomic.AtomicInteger getTimerState()
定时器状态: 0: 已停止 / 非0: 进行中 用于控制是否停止定时器
public void tryFlushWhenAdd(int currRequestCount)
空 -> 非空: 启动定时 在添加请求时调用
public void startTimer()
启动刷盘的定时任务
public long getFlushTimeoutMillis()