| 接口 | 说明 |
|---|---|
| IFlusher<RequestType,ResponseType> |
刷盘器
|
| 类 | 说明 |
|---|---|
| CounterFlusher |
计数来刷盘
定时刷盘 + 定量刷盘
注意: 1 doFlush()直接换新的计数, 而处理旧的计数
|
| IQuotaFlusher<RequestType,ResponseType> |
定量刷盘
|
| ITimeFlusher<RequestType,ResponseType> |
定时刷盘
使用 startTimernewTimeout() 即 newTimeout() 来设置一次定时flush(), 但是不需要递归调用, 因为flush()会清理所有当前所有请求, 也就暂时没有再来 startTimer() 即 newTimeout() 的必要
以后只要调用 add() 添加请求, 就主动触发定时器, 参考 tryFlushWhenAdd(), 这样就很节省定时器资源, 虽然说定时不及时
|
| RequestQueueFlusher<RequestType,ResponseType> |
请求队列刷盘器
定时刷盘 + 定量刷盘
注意: 1 使用 ConcurrentLinkedQueue 来做队列, 其 size() 是遍历性能慢, 尽量使用 isEmpty()
2 doFlush()直接换新的队列, 而处理旧的队列
|
| UnitRequestQueueFlusher<RequestType> |
无响应值的请求队列刷盘器
|