一种根据服务器状态动态发送通知的系统和方法与流程

文档序号:23619337发布日期:2021-01-12 10:29阅读:157来源:国知局
一种根据服务器状态动态发送通知的系统和方法与流程

本发明涉及互联网应用技术领域,特别涉及一种根据服务器状态动态发送通知的系统和方法。



背景技术:

随着互联网应用技术的迅猛发展,网络游戏拥有了庞大的用户群。对于策略类、消除类等非角色扮演类游戏,系统消息往往不需要及时迅速地发送给用户。另一方面,用户上线游戏的时间呈现一定的规律性,在高峰时段会造成服务器需要处理庞大的数据量,从而容易造成服务器的开销呈几何级数增长,使服务器出现卡顿等问题。同时,由于游戏用户上线人数会随时间逐递减,存在大量的僵尸用户,造成服务器需要处理大量无效的数据。



技术实现要素:

本发明所要解决的技术问题在于,提供一种根据服务器状态动态发送通知的系统和方法,可针对大量用户需要发送消息导致的系统拥堵,以及实际用户小于注册用户导致浪费系统资源的需求。

为了解决上述技术问题,本发明提供了一种根据服务器状态动态发送通知的系统,其特征在于:包括判断模块、识别模块和发送模块。

所述判断模块用于判断游戏服务器的状态。

所述识别模块用于识别符合要求的在线游戏用户,并确定通知发送模式。

所述发送模块用于按所述识别模块确定的所述发送模式发送通知。

其中,发送模块仅对在线游戏用户发送通知,而不对离线用户发送通知。

作为上述方案的改进,所述判断模块根据在线人数占预设总人数的比例将服务器状态分为正常和拥挤中的一种。

其中,当在线人数占预设总人数的比例小于临界值时,判断模块将服务器状态判断为“正常”。当在线人数占预设总人数的比例等于或大于临界值时,判断模块将服务器状态判断为“拥挤”。

作为上述方案的改进,当服务器状态为正常时,所述识别模块确认的通知发送模式为将所有通知全部即时发送给符合要求的在线游戏用户。

当服务器状态为正常时,服务器可以承受向所有在线用户发送通知的处理量,并且不会造成卡顿,有利于提高游戏的节奏和服务器的处理效率。

作为上述方案的改进,当服务器状态为拥挤时,所述识别模块确认的通知发送模式为分批发送将通知发送给符合要求的在线游戏用户。

其中,分批发送通知的量以服务器不卡顿为标准。当服务器状态为拥挤时,将通知分批发送给用户,可以减少服务器的即时运行压力,使得服务器运行更加平稳。

作为上述方案的改进,所述识别模块还识别在线游戏用户的游戏状态,并优先对不在游戏中的用户发送通知。

游戏中的用户无法查看游戏内的通知,只有不在游戏中的用户才可以查看通知。因此,优先给不在游戏中的用户发送通知即减小了服务器的数据处理量,又不影响用户消息送达的及时性。

作为上述方案的改进,所述发送模块对于新上线的游戏用户单独发送通知。

由于系统只针对在线用户发送通知,因此需要对新上线的游戏用户单独发送通知。在对新上线的用户发送通知时,同样需要判断模块进行判断,并由识别模块进行识别,以应对登录高峰。

作为上述方案的改进,所述发送模块在游戏内以邮件的方式发送通知并存储在用户收件箱中。

消息存储在用户收件箱可以防止消息丢失,更加适合在服务器正常的状态下进行发送。

作为上述方案的改进,所述识别模块还可以根据游戏用户属性筛选用户,以进行定向通知。

其中,识别模块可以根据游戏用户属性中的多种维度对用户进行筛选,包括等级、公会、活跃情况、充值金额等。对部分游戏用户的定向通知可以提高通知的针对性,并减少对无关用户的干扰,有助于营造更加良好的游戏环境。

相应地,本发明还提供了一种根据服务器状态动态发送通知的方法,包括如下步骤。

a.使用上述的判断模块判断游戏服务器的状态。

在本步骤中,识别服务器的状态可以使通知的发送在服务器可承受的范围内,不会因为发送通知导致服务器卡顿甚至崩溃的情况发生。

b.使用上述的识别模块识别符合要求的在线游戏用户,并确定通知发送模式。

在本步骤中,根据服务器状态确定发送模式,可以做到服务器可承受与发送效率的兼顾,提高系统运行的稳定性与效率。

c.使用上述的发送模块按所述识别模块确定的所述发送模式发送通知。

在本步骤中,只对在线的游戏用户按照通知发送模式发送消息,一方面减少了未上线用户的通知发送的工作量,另一方面可以保证服务器运行的稳定性。

相应地,本发明还提供了计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述的方法。

本发明具有如下有益效果。

本发明不再像传统通知方式对所有游戏用户进行通知,而是只对在线游戏用户发送通知,减少了服务器的即时信息处理量,有利于服务器运行的稳定性。本发明根据服务器的运行状态动态调整信息发送模式,既保证了服务器运行的稳定性,又保证了消息发送的效率。本发明对于网络游戏中用户流失导致的大量无效数据具有非常好的过滤效果,从源头保证了服务器的运行速度。

附图说明

图1是本发明一种根据服务器状态动态发送通知的系统的第一实施例结构示意图。

图2是本发明一种根据服务器状态动态发送通知的方法的第一实施例流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。

如图1所示的本发明第一实施例,提供了一种根据服务器状态动态发送通知的系统,包括判断模块100、识别模块200和发送模块300。

判断模块100用于判断游戏服务器的状态。判断模块100根据在线人数占预设总人数的比例将服务器状态分为正常和拥挤中的一种。

具体地说,在大多数登录的网络游戏中,一般会显示服务器的拥挤状态,并显示“良好”、“正常”、“拥挤”三种状态。这三种状态可以提示用户登录后可能的游戏体验情况。但这种指示对于服务器执行突发的、大批量的任务并不具有实际的指导意义。在本系统中当在线人数占预设总人数的比例小于临界值时,判断模块将服务器状态判断为“正常”。当在线人数占预设总人数的比例等于或大于临界值时,判断模块将服务器状态判断为“拥挤”。而本系统中的临界值要小于上述的登录时的服务器“拥挤”状态时的值。对于用户登录游戏进行游戏而言,用户的游戏行为消耗的资源相对来说更加均衡、稳定,而对于群发邮件等时间短、并发高的运作来说,需要在短时间内消耗大量的服务器资源,因此在考虑服务器最大能承受的资源消耗量,并且保证游戏流畅的情况下,本系统中的临界值要小于一般服务器中“拥挤”的标准,即本系统中的临界值小于一般意义上“拥挤”的标准值。目前主流的判断服务器拥挤的人数是总人数的80%,而本系统一般设置为50%-60%之间。

识别模块200用于识别符合要求的在线游戏用户,并确定通知发送模式。

具体地说,当服务器状态为正常时,识别模块200根据通知类型识别出所有待发送在线用户,并将发送要求传递给发送模块300进行一次性发送。当系统通知需要向全部用户发送时,所有的在线用户都是待发送在线用户,识别模块200获取所有在线用户的名单,并将该名单传递给发送模块300进行一次性发送。当系统通知需要向特定用户发送,比如某公会成员或某活动参加成员,则识别模块200获得符合要求的游戏用户名单,并将其中的在线用户名单传递给发送模块300进行一次性发送。对于新上线的游戏用户,识别模块200会识别出该游戏用户所有需要接收的消息,并将该用户帐号及对应的消息列表传递给发送模块300进行一次性发送。

当服务器状态为拥挤时,识别模块200根据通知类型识别出所有待发送在线用户,再根据用户当前状态进行分批,然后将发送要求及次序传递给发送模块300进行分批发送。当系统通知需要向全部用户发送时,所有的在线用户都是待发送在线用户,识别模块200识别在线用户的游戏状态,将用户区分为游戏中用户和待游戏用户,然后根据服务器预设的处理能力,按照先游戏中用户后待游戏用户的顺序,对所有在线用户进行排序,再将发送顺序传递给发送模块300。比如服务器预设处理人数为10050人,目前承载人数8050人,则有2000人的处理能力。游戏中用户5000人,待游戏用户3050人,则将5000人随机划分为两个2000人的集合并排在序列前面。再将游戏中用户剩余的1000人与待游戏用户中随机抽取的1000人组成第三个集合,位于发送序列的第三位。而后从剩余的待游戏用户中随机抽取2000人组成第四个集合,位于发送序列的第四位。最后再将剩余50人组成第五个集合,位于发送序列的末位。同理,当系统通知需要向特定用户发送,比如某公会成员或某活动参加成员,则识别模块200获得符合要求的游戏用户名单,并将其中的在线用户名单根据服务器处理能力进行排序,并将排序名单及顺序传递给发送模块300。对于新上线的游戏用户,识别模块200会在本次发送结合后,再识别该游戏用户所有需要接收的消息,并将该用户帐号及对应的消息列表传递给发送模块300进行发送。需要说明的是,在服务器为拥挤状态时,仍需要对新登录用户进行排序,以免在登录高峰时由于新登录用户过多而导致的服务器卡顿现象。

发送模块300用于按所述识别模块确定的所述发送模式发送通知。

具体地说,发送模块300根据识别模块200提供的用户名单及排序发送通知。如果发送模块300接收到的发送模式为一次性发送,则发送模块300对名单上的所有用户都进行发送。如果发送模块300接收到的发送模式为分批发送,则按照排序对名单分批进行发送。发送模块300先对排序靠前的集合发送消息,并设置发送时间,在发送时间结束后,再进行下一个排序的集合进行发送,直到所有用户全部发送完成。比如,设置发送时间为0.5s,则发送模块300在开始对排序第一的集合发送计时,在0.5s后,开始对排序第二的集合发送并重新计时,在在0.5s后,开始对排序第二的集合发送并重新计时,以此类推,直至所有用户集合全部发送完毕。发送模块300只对在线游戏用户发送通知,而不对离线用户发送通知。对于新上线的游戏用户,发送模块300接收识别模块200发送过来的用户帐号及对应的消息列表,从消息记录中获得消息列表对应的所有消息内容,将消息内容发送给指定的用户帐号。发送模块300在游戏内以邮件的方式发送通知并存储在用户收件箱中。

相应地,如图2所示,本发明还提供了一种根据服务器状态动态发送通知的方法,包括如下步骤。

s001.使用上述的判断模块判断游戏服务器的状态。

具体地说,本步骤将服务器状态判断为“正常”或“拥挤”,并在下一步中使用该结果进行发送策略的选择。本步骤通过对服务器的状态进行判断,实现本系统可以动态地根据服务器状态进行调整消息发送策略,在保证服务器运行状态较为稳定的情况下,保证最高的效率。

s002.使用上述的识别模块识别符合要求的在线游戏用户,并确定通知发送模式。

具体地说,本步骤根据上一步骤中对服务器判断的结果,选择对应的发送模式。具体选择方式已在实施例一中阐述,此外不再赘述。本步骤确定了通知发送模式和发送对象,最小化了发送的对象范围,节约了服务器资源。

s003.使用上述的发送模块按所述识别模块确定的所述发送模式发送通知。

具体地说,本步骤根据上一步骤确认的发送对象和发送模式,将通知内容按发送模式发送给指定的对象,实现服务器资源利用的最大化。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1