改进方案与第一步

改进方案

晚上,我整理思路,写了一份方案:

短期目标(1 周)

  1. 解决重复推送:Redis 分布式锁防并发执行,记录推送结果、幂等处理。
  2. 优化查询效率:给 status 加索引,考虑用 Redis 队列代替数据库轮询。
  3. 增加错误处理:推送失败记录原因,实现重试(最多 3 次)。

中期目标(1 个月)

  1. 拆分通知类型:高优先级队列(私信、评论@)与低优先级队列(点赞、促销)。
  2. 实现站内信:消息中心、已读/未读状态。
  3. 用户偏好设置:允许关闭某类通知、设置免打扰。

长期目标(3 个月)

  1. 多渠道推送:iOS APNs、安卓厂商推送、短信邮件备选。
  2. 推送监控:成功率、平均延迟、各渠道统计。

老王看完,点点头:「思路清晰,先解决燃眉之急。」

第一步:加锁

第二天一上班,我开始改造。第一步,解决并发问题——用 Redis 分布式锁:

  • 脚本执行前尝试获取锁。
  • 拿到锁才执行,否则跳过本次。
  • 处理完释放锁,并加过期时间防死锁。

部署后观察了一天,重复推送的问题消失了。

但我知道,这只是开始。

一句话

改进方案分三档:短期治标(锁、索引、重试),中期治本(分级、站内信、偏好),长期完备(多渠道、监控)。先解决燃眉之急,再逐步走向生产级。

下一章深入推送渠道:iOS 与安卓的差异。

发现内容有问题?

告诉我们哪里需要改进。