微信推送消息的思考
作者:
| 更新日期:并不是越快越好,而是要好用。
本文首发于公众号:天空的代码世界,微信号:tiankonguse
一、背景
两周前开始去公司上班,早中晚三餐都是吃公司的盒饭了。
由于员工太多,为了提前准备好足够分量的盒饭,公司提前一天微信推送了消息,让我们进行登记自己第二天是否要盒饭。
登记的时候,我们也可以顺便把第二天一天的饭钱预先支付了。
这个流程看起来没啥问题。
可是实际操作的时候,发现在登记盒饭这一步出了点问题,无数人被困扰。
二、登记
首先,登记有时间限制。
只能在每天的14:00 ~ 18:00 时间内进行登记。
微信公众号会每天14点多的时候,给全员推送订餐通知。
而这里的问题是,大家收到通知开始登记的时候,由于访问量太大,页面大部分人都打不开。
很多人想着之后再登记,便开始工作了。
大家工作都是很专心的,一开始工作便把登记这个事情给忘记了。
结果就是第二天没有饭吃了。
我和周围的同事遇到很多次了,相信其他人也遇到了吧。
三、推送系统
这个问题,思考一下,其实是推送系统很常见的一个很实际的问题,却被无数人忽视了。
作为一个优秀的推送系统,肯定想在最短的时间内推送最多的消息。
比如半个小时推送1亿的消息。
但是话说回来,最短时间内推送最多的消息只能代表一个推送系统的上限能力。 但是并没有必要,所有的消息推送都使用这个能力。
换句话说就是,实际使用推送系统时,需要根据推送消息的数据,在能力范围之内选择适当的速度来推送。
比如对于爆炸性热点新闻消息,为了和其他竞品抢占时间,可能希望尽量快的推送消息给用户。
而对于其他消息,完全可以慢慢推送。
不然就会遇到我们登记订餐这个问题,一会就推送给全员了,看起来很厉害的样子。
可是一打开,大部分人页面刷不开,那推送的这么快有什么意义呢?
所以,推送系统在推消息时,推送的速度一定要与打开消息之后的下游系统的能力相匹配。
四、最后
面对这个问题,我想到了另外一个解决方案。
既然订餐时间是 14:00 ~ 18:00, 那我写一个程序,在 16:00 的时候给我发消息,提醒我订餐就可以完美解决这问题了。
嗯,使用手机定个闹钟或者待办事项也可以,你可以这个方法。
《完》
-EOF-
本文公众号:天空的代码世界
个人微信号:tiankonguse
公众号ID:tiankonguse-code
本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。