在广告系统中,设定一个时间点就会自动推送消息给用户,实现的大致原理是什么呢
你做了一个定时炸弹,这个炸弹是个空包弹,不会诈死人而是实现一个功能,把你数据库里news表里最新的消息推送给target表中的用户,这个炸弹精力旺盛,兴奋,随时都等待着“boom”,而你却告诉炸弹在每天5点的时候才能“boom”一次,炸弹就每天等着时间一分一秒的过去,5点一到他便迫不及待的“boom”。他为啥把时间掌握的如此精确呢,因为军火厂招聘了一个定时检查的检测员,该检测员工资很高,所以他每时每刻都拿着一个秒表校对名单,发现名单中哪个炸弹该“boom”的时候,它坐上军火厂给他生产的火箭飞船,以迅雷不及掩耳之势通知目标炸弹:“该你表演真正的技术的时候了”,然后目标炸弹就这么“boom”了。
不是很清楚你的问题的重点是哪方面。
我就说我知道的吧。一般定时推送消息有两种做法,一种是客户端提前下载消息内容,时间一到立刻显示;另一种是通过http被动轮询或websocket主动推送,这个也没啥好说的。如果你问的是后端怎么实现,那也分两种情况,如果是前面提到的第一种,没什么大问题,每次给客户端回复将来需要定时推送的消息即可;后一种就和聊天室的实现差不多了,一有推送计划就把任务丢任务计划队列里就行了。
8 回答2.6k 阅读
2 回答5.1k 阅读✓ 已解决
5 回答850 阅读
3 回答2.2k 阅读
2 回答2.1k 阅读
1 回答774 阅读✓ 已解决
2 回答705 阅读✓ 已解决
简单来说就是你在服务器添加一个定时发送的服务(crontab),时间你自己规定,比如说每天5点, 然后你写一个程序发送邮件给指定用户,然后告诉服务器每天5点的时候触发这个程序。 然后服务器就会每秒检查一次是否现在是5点整,如果不是就忽略,如果是就触发你的程序。然后你的程序负责筛选用户发送邮件。