定时推送消息的原理是什么

在广告系统中,设定一个时间点就会自动推送消息给用户,实现的大致原理是什么呢

阅读 6.3k
5 个回答

简单来说就是你在服务器添加一个定时发送的服务(crontab),时间你自己规定,比如说每天5点, 然后你写一个程序发送邮件给指定用户,然后告诉服务器每天5点的时候触发这个程序。 然后服务器就会每秒检查一次是否现在是5点整,如果不是就忽略,如果是就触发你的程序。然后你的程序负责筛选用户发送邮件。

队列计划任务

你做了一个定时炸弹,这个炸弹是个空包弹,不会诈死人而是实现一个功能,把你数据库里news表里最新的消息推送给target表中的用户,这个炸弹精力旺盛,兴奋,随时都等待着“boom”,而你却告诉炸弹在每天5点的时候才能“boom”一次,炸弹就每天等着时间一分一秒的过去,5点一到他便迫不及待的“boom”。他为啥把时间掌握的如此精确呢,因为军火厂招聘了一个定时检查的检测员,该检测员工资很高,所以他每时每刻都拿着一个秒表校对名单,发现名单中哪个炸弹该“boom”的时候,它坐上军火厂给他生产的火箭飞船,以迅雷不及掩耳之势通知目标炸弹:“该你表演真正的技术的时候了”,然后目标炸弹就这么“boom”了。

新手上路,请多包涵

设定一个时间点,调用第三方推送工具如友盟的接口,就会推送给用户最新的资讯

不是很清楚你的问题的重点是哪方面。

我就说我知道的吧。一般定时推送消息有两种做法,一种是客户端提前下载消息内容,时间一到立刻显示;另一种是通过http被动轮询或websocket主动推送,这个也没啥好说的。如果你问的是后端怎么实现,那也分两种情况,如果是前面提到的第一种,没什么大问题,每次给客户端回复将来需要定时推送的消息即可;后一种就和聊天室的实现差不多了,一有推送计划就把任务丢任务计划队列里就行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题