问题背景
很多人可能会留意到, 关注了公众号之后,隔一段时间, 公众号会推送消息出来,打开消息后发现这些消息看起来不像人工发送的,应该是设计好的一套关注后的定时推送机制, 从而来达到获客转化的目的.
我司微星极光的一个重磅产品, 公众号激活宝, 目前就以第三方平台的形式给各个服务号公众号提供了这样的赋能.
效果如下图
本文主要介绍如何实现这种推送机制的技术方案
技术选型思路
定时调度数据库轮询
这种是很容易想到方案, 有点是简单粗暴, 缺点也同样明显, 效率低下, 适合在用户量很少的时候,顶一顶. 一般草根团队在PoC阶段凑和用的, 我们微信极光公众号激活宝这个产品, 开发这个功能的时候, 已经积累了非常多的用户量, 这里显然不合适, 所以pass掉了
使用golang defer timmer
他们第三方平台的后台语言使用Golang, 这个也是一开始尝试过的方案, 非常灵巧, 见效快.
timer = time.AfterFunc(time.Duration(n) * time.Minute, func() {
// do something