开发一个功能,给大量的用户群体发送站内信,该采取怎么样的措施
(1)、循环发送列表,逐条发送。优点是:简单,如果发送列表很少,而且没有什么耗时的操作,是比较好的一种选择,缺点是:针对大批量的发送列表,不可取,耗时,程序会出现严重的阻塞问题。
(2)、使用队列(BlockingQueue),开启多个线程,分为三个部分。一部分负责处理将发送列表放入队列;一部分负责从队列中读取并发送消息;第三部分负责监视队列是否为空及后续的操作。
如果不是重要消息,可以考虑采取广播试发送UDP
例如QQ邮箱这样的消息,有标题,内容,已读未读状态,如果在后台发送每个用户在表里有条数据,那样就会导致后台发送的时间很长
推荐activityMQ
写一个定时任务,循环推送消息
可以异步发送啊,当然用消息队列也是可以的。
发送消息的时候,只负责把消息存在一个表里面,每次用户刷新页面的时候就去获取一下,如果用户不刷新页面的话,就只能主动推送了。
一句话:发送消息交给单独的程序去处理,别在主要程序里面处理发送消息。
可以是用kafka,站内发送快速.