本发明涉及数据处理,特别涉及一种大吞吐量环境下消息分发的方法及终端。
背景技术:
1、在日常工作生活中有很多消息发送和接收的应用,在这些应用中消息的传递通常不是一对一的,以常见的微信信息为例,发送人在微信群里发一条消息,实际上该消息会分发成n条信息,分发给群里的每个人,虽然消息主题内容只有一份,但消息接收人,接收状态,是否已读等,实际上是独立的多条数据。
2、即使是人对人的消息,实际上也不仅是简单的推一条信息出去,例如张三在手机上给李四发了一条消息,实际上可能分发到如下设备:
3、张三自己的手机设备接收到消息;张三电脑上的微信客户端收到消息;李四手机设备上接收到的消息;李四电脑微信客户端接收到消息。
4、因此导致消息比较频繁的时候,很容易造成消息接收记录写入的卡顿,经常会给用户一种发消息卡顿现象,极端情况下,可能因为一次性发信息过多,其中某一技术/硬件错误,导致总体失败,尤其在分布式服务器情况下,该情况更为糟糕,因为服务器之间联络还要时间,整个消息分发装置吞吐量大时运行不稳定。
技术实现思路
1、本发明所要解决的技术问题是:提供一种大吞吐量环境下消息分发的方法及终端,以提高大吞吐量环境下消息分发机制的稳定性。
2、为了解决上述技术问题,本发明采用的技术方案为:
3、一种大吞吐量环境下消息分发的方法,获取消息推送处理表的待推送消息,并获取待推送消息的接受方设备;
4、判断待推送消息的接收方设备数是否大于设定阈值,若是,则将待推送消息分批进行消息推送,否则正常进行消息推送。
5、为了解决上述技术问题,本发明采用的另一种技术方案为:
6、一种大吞吐量环境下消息分发的终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
7、本发明的有益效果在于:一种大吞吐量环境下消息分发的方法及终端,通过分批处理数据,设定分批处理数据每批次的上限阈值,其不能让运行中的线程数过小,影响硬件机能发挥,也防止线程调度的计算量太大,死锁发生的几率过大,提高了大吞吐量环境下消息分发机制的运行效率和稳定性。
1.一种大吞吐量环境下消息分发的方法,其特征在于,获取消息推送处理表的待推送消息,并获取待推送消息的接受方设备;
2.根据权利要求1所述的一种大吞吐量环境下消息分发的方法,其特征在于,所述获取消息推送处理表的待推送消息,并获取待推送消息的接受方设备,具体是:
3.根据权利要求2所述的一种大吞吐量环境下消息分发的方法,其特征在于,所述分批进行消息推送具体包括:
4.根据权利要求3所述的一种大吞吐量环境下消息分发的方法,其特征在于,所述步骤a11还包括:
5.根据权利要求3所述的一种大吞吐量环境下消息分发的方法,其特征在于,所述正常进行消息推送包括步骤:
6.根据权利要求5所述的一种大吞吐量环境下消息分发的方法,其特征在于,所述推送线程包括第一推送线程和第二推送线程,所述第一推送线程用于执行正常进行消息推送,所述第二推送线程用于执行分批进行消息推送。
7.根据权利要求6所述的一种大吞吐量环境下消息分发的方法,其特征在于,所述消息推送处理表和分批表将抵达下次执行时间且未抵达最大失败次数的数据进行重新推送。
8.根据权利要求7所述的一种大吞吐量环境下消息分发的方法,其特征在于,所述重新推送包括:
9.根据权利要求1所述的一种大吞吐量环境下消息分发的方法,其特征在于,当接收到用户发送的新消息时,还将消息存入消息表,当接收到搜索命令时,消息表检索出相应的消息调用送索引线程进行送索引,若送索引失败则记录失败次数和失败记录,过一段时间再次进行送索引,直到送索引成功或抵达最大失败次数。
10.一种大吞吐量环境下消息分发的终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-9任一项所述的方法。