public class RequestQueueFlusher<RequestType,ResponseType>
extends ITimeFlusher
请求队列刷盘器 定时刷盘 + 定量刷盘 注意: 1 使用 ConcurrentLinkedQueue 来做队列, 其 size() 是遍历性能慢, 尽量使用 isEmpty() 2 doFlush()直接换新的队列, 而处理旧的队列
IFlusher.DefaultImpls| 构造器和说明 |
|---|
RequestQueueFlusher(int flushQuota,
long flushTimeoutMillis)
请求队列刷盘器
定时刷盘 + 定量刷盘
注意: 1 使用 ConcurrentLinkedQueue 来做队列, 其 size() 是遍历性能慢, 尽量使用 isEmpty()
2 doFlush()直接换新的队列, 而处理旧的队列
|
| 限定符和类型 | 方法和说明 |
|---|---|
java.util.concurrent.CompletableFuture<ResponseType> |
add(RequestType req)
单个请求入队
|
void |
doFlush(int oldIndex)
处理旧索引的请求
|
NonExistentClass |
getListPool()
列表池, 用于在doFlush()将队列请求转为List, 方便用户处理
|
boolean |
getNoResponse()
是否无响应值
即响应值值类型为 Void / Unit, 则框架帮设置异步响应
|
NonExistentClass |
getQueuePool()
队列池
|
NonExistentClass[] |
getQueues()
2个请求队列来轮换
单个请求 = 请求参数 + 异步响应
|
java.util.concurrent.CompletableFuture<?> |
handleRequests(java.util.List<? extends RequestType> reqs,
java.util.Collection<? extends kotlin.Pair<?extendsRequestType,?extendsjava.util.concurrent.CompletableFuture<ResponseType>>> req2ResFuture)
处理刷盘的请求
如果 ResponseType != Void/Unit, 则需要你主动设置异步响应
|
int |
requestCount()
获得请求计数
|
getFlushTimeoutMillis, getTimerState, startTimer, tryFlushWhenAddcurrIndex, doFlush, flush, getExecutor, getFlushQuota, getLock, getSwitch, isRequestEmpty, setSwitch, tryFlushWhenAddadd, flush, isRequestEmpty, requestCountpublic RequestQueueFlusher(int flushQuota,
long flushTimeoutMillis)
请求队列刷盘器 定时刷盘 + 定量刷盘 注意: 1 使用 ConcurrentLinkedQueue 来做队列, 其 size() 是遍历性能慢, 尽量使用 isEmpty() 2 doFlush()直接换新的队列, 而处理旧的队列
public NonExistentClass getQueuePool()
队列池
public NonExistentClass getListPool()
列表池, 用于在doFlush()将队列请求转为List, 方便用户处理
public NonExistentClass[] getQueues()
2个请求队列来轮换 单个请求 = 请求参数 + 异步响应
public int requestCount()
获得请求计数
public java.util.concurrent.CompletableFuture<ResponseType> add(RequestType req)
单个请求入队
public void doFlush(int oldIndex)
处理旧索引的请求
public boolean getNoResponse()
是否无响应值 即响应值值类型为 Void / Unit, 则框架帮设置异步响应
public java.util.concurrent.CompletableFuture<?> handleRequests(java.util.List<? extends RequestType> reqs,
java.util.Collection<? extends kotlin.Pair<?extendsRequestType,?extendsjava.util.concurrent.CompletableFuture<ResponseType>>> req2ResFuture)
处理刷盘的请求 如果 ResponseType != Void/Unit, 则需要你主动设置异步响应