去重实现
2023-01-30 13:56:23 0 举报
AI智能生成
去重
作者其他创作
大纲/内容
1.从配置文件获取
没开启的话就从本地配置文件读取
这个表示3分钟用户收到相同的内容就去重, 这个表示一天内收到5条相同的渠道就去重
2. 获取去重渠道的列表
获取去重的列表
3.
3.1 根据去重的类型获取一个builder
3.1.1 buildHolder什么时候加载的:跟之前的类似
设置进去
加载他的时候会加载它的父类
同理
3.1.2 获取一个holder
3.2 根据选择的builder实现其build方法-->构建去重参数
ContentDeduplicationBuilder:N分钟相同内容去重
表示三分钟内收到相同信息去重
子主题
4. 去重真正实现方法
4.1 首先根据去重类型选择一个service
4.1.1 去重的service哪里来的(跟上述的builder一个样)
接口
跟上述的builder一个道理
相同内容的用滑动窗口去重
key: md5(templateId + receiver + content)
相同渠道的用redis去重
key : receiver + templateId + sendChannel
holder保存
4.1.2 拿到一个service
4.2 去重方法
传进来的参数DeduplicationParam
SlideWindowLimitService
key:SW_1ac74054fad40dc99d918b70e940c610
内容去重服务(默认3分钟相同的文案发给相同的用户去重)
SimpleLimitService:频次去重服务(一天内N次相同渠道去重)
key : receiver + templateId + sendChannel
1. 首先构造要发送所有reciver的唯一key
2. 在redis中查找是否存在改记录
3. 遍历taskInfo所有的接收者
3.1 构造去重key
3.2看redis中是否存在
如果存在值并且大于默认规定的五条渠道就添加
0 条评论
下一页