在C/S模型下,需要服务端主动推送大量数据时,通过定时或按数量到达一定条件时,将数据批量取出,实现合并推送,减少推送次数。
定义
设计一个队列,将元素不停的往队列里添加,直到满足某个条件后,可以将多个元素一并取出。
接口说明
1
2
3
4
5
6
7
8
9
10
11
12
13// Batcher 批处理接口
type Batcher interface {
// 数据入列
Put(interface{}) error
// 数据出列
Get() ([]interface{}, error)
// 更新缓冲区
Flush() error
// 弃用
Dispose()
// 是否已弃用
IsDisposed() bool
}结构图
实现
支持按数量、长度、时间等方式对数据进行批量获取
1 | package batcher |
示例
1 | package main |
- 本文作者: Hongker
- 本文链接: https://hongker.github.io/2022/06/25/algorithm-batcher/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!