作为App使用者的我们,偶尔会收到某个App发出的“测试测试”“Test”等推送消息,实际上这是推送发生了事故。为什么会经常出现这一类的情况呢?最主要的原因就是:预发和线上的环境是同一套

众所周知,我们的系统都有几套的环境(比如说本地/线下/预发/线上 环境),其中大多数公司的预发和线上环境数据库是同一套的,只是预发环境调用的是预发环境的接口,线上环境调用的是线上环境的接口而已。

推送这种系统的线上和预发环境其实没多大的区别,因为在底层是调用外部的接口来实现发送的,所以预发和线上环境其实调的都是同一个接口

那么如何预防推送事故呢?

在大多数情况下,推送事故往往是「运营」的推送导致的。运营要推送消息给用户,首先需要圈选一个人群去推送。

人群量需要管控:我们在圈选的时候,如果运营圈定的人数大于一个阈值,需要请上级领导确认是否需要圈选这么一个大的人群去推送。

这块有两个目的:

  1. 首先我们是认为推送的人群应该是精细化的,什么标签的人群应该收到什么的推送。不应该圈定一个庞大的人群去推送同一条文案的消息(新闻APP除外)。
  2. 即便出了事故,也只是一部分用户能收到,而不是全体用户。

然后在运营圈定人群后,设置单独的测试功能去「测试单个用户」是否能正常下发消息,文案链接是否存在问题。

这一个步骤是必须要做的,给用户发出的消息,首先要经过自己的校验。如果确认链接和文案都无问题后,则提交任务,确认无误后才能发送。

如果在启动之后发现文案/链接存在问题,还可以拦截剩余未发的消息。

针对于通知类的消息(技术方推送),在预发环境下配置了「白名单」才能收到消息。

线上消息有「去重」的逻辑:

  • 在某段时间内,过滤掉重复消息
  • 运营类消息推送(圈定人群的方式去下发消息)同一个用户需要相隔一段时间才能下发一次。

关于消息推送服务,想要了解更多也可以咨询极光。

极光推送官方链接:https://www.jiguang.cn/push