Package io.rong.imkit.feature.expose
Class ExposeBatchSubmitManager
-
- All Implemented Interfaces:
public abstract class ExposeBatchSubmitManager<T>批量提交管理器 用于将高频调用的操作进行批量处理,减少网络请求次数
功能特性: 1. 防抖动:在指定延迟时间内的多次调用会被合并成一次提交 2. 状态机管理:使用清晰的状态转换避免竞态条件 3. 线程安全:使用统一的状态锁确保多线程安全 4. 泛型支持:支持不同类型的数据批量处理 5. 顺序保证:使用 LinkedHashSet 保持任务的插入顺序,确保先提交的任务先执行 6. 去重保证:自动去除重复任务(基于 equals 和 hashCode) 7. 连接状态感知:根据连接状态自动暂停/恢复任务处理
状态机: IDLE ⇄ ACTIVE
状态说明: - IDLE: 空闲状态,没有待处理数据,没有安排任务 - ACTIVE: 活跃状态,有待处理数据或正在处理中
- Since:
5.30.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public interfaceExposeBatchSubmitManager.BatchResultCallback批量提交结果回调接口
-
Method Summary
Modifier and Type Method Description voidaddSubmitTask(T item)添加数据到批量处理队列 voidrelease()释放外部资源并清理内部状态 停止接收连接状态通知,取消待执行的任务,清空等待队列 适用场景:需要完全停止批量提交功能时调用 注意:调用此方法后,BatchSubmitManager 将立即停止所有任务处理, 所有待处理的数据将被清除,不会再继续执行 -
-
Method Detail
-
addSubmitTask
void addSubmitTask(T item)
添加数据到批量处理队列
- Parameters:
item- 要添加的数据
-
release
void release()
释放外部资源并清理内部状态 停止接收连接状态通知,取消待执行的任务,清空等待队列 适用场景:需要完全停止批量提交功能时调用
注意:调用此方法后,BatchSubmitManager 将立即停止所有任务处理, 所有待处理的数据将被清除,不会再继续执行
-
-
-
-