偏好检查流程

发送前的检查

在发送通知时,检查用户偏好:

通知发送前的偏好检查

业务事件触发通知

检查全局开关

步骤 1 · 判断用户是否接收推送

检查分类开关

步骤 2 · 判断该类型是否开启

检查免打扰时段

步骤 3 · 判断当前是否在静默期

检查限流与聚合

步骤 4 · 判断是否超窗口阈值

选择渠道发送

步骤 5 · 动作推送 + 站内信

记录发送结果

步骤 6 · 结果成功 / 失败 / 被拒
用户按自己的偏好接收通知

检查的顺序

  • 先全局后分类:全局关了,分类都不用查。
  • 先偏好后限流:用户偏好是「想不想收」,限流是「收多少」。
  • 紧急豁免:私信等紧急通知可跳过免打扰 / 部分限流。

检查的性能

  • 偏好检查在发送关键路径上,要快。
  • 偏好读 Redis 缓存,毫秒级。
  • 聚合 / 限流状态也在 Redis,一次读取多个键。

被拒的处理

  • 因偏好被拒的通知:不发送,可记日志(统计「被用户拒收」)。
  • 统计被拒率,帮助判断默认策略是否合理。

一句话

偏好检查是发送前的「过滤层」:全局 → 分类 → 时段 → 限流,逐层放行。检查要快(缓存)、要有序(先粗后细)、要可统计(被拒率)。

下一章收束:完整系统架构。

发现内容有问题?

告诉我们哪里需要改进。