例1:
直播平台中,我要是订阅某位主播后。之后一旦他开播,服务端就会给粉丝们发送:他的开播消息通知。存在如下两点:
(1) 一位大主播的粉丝都是 10W+、100w+,甚至更多。(需推送的量大)
(2) 保证在开播后的短时间内,消息通知到每一位订阅的粉丝。
(3) 每位用户只发送 1 次通知(不可重复)
例2:
像活动报名平台,一场活动的参加人数大概在几十到几百个人,需要在活动开始前1小时,通知到该场活动下的每一位用户: 提醒他们参加的活动开始时间。存在如下两点:
(1) 活动报名平台,需通知的量不会像直播平台那么大。(需推送的量小一些)
(2) 还是尽量在短时间内,消息通知到每一位活动参与者。
(3) 每位用户只发送 1 次通知(不可重复)
这种业务场景还是比较常见的,大概总结就是:在需要发送通知那一刻开始,尽量在段时间内,批量发送通知消息 到 需要提醒的用户人群。
问:
有sf小伙伴能提下实现思路的没? 谢过 ^_^
最常见的就是扔队列执行,开启多个进程消耗队列
假设你有10w+消息,扔到redis队列中,自己写个消费队列的脚本,用supervisor开启多个进程,来消费这个队列
由于队列的特性,一个任务只能被消费一次,可以很好的解决这个问题