一种消息发送方法及服务器技术

技术编号:17944338 阅读:35 留言:0更新日期:2018-05-15 23:27
本发明专利技术实施例公开了一种消息发送方法及服务器,包括:针对服务器中的任一消息发送器,服务器从消息发送器的消息队列中获取待发送的第一消息,根据第一消息所要发送到的第一网关,判断该第一消息发送器当前时间周期内已发送给第一网关的消息数量是否达到设定阈值,若是,则将第一消息重新存入消息队列,否则将第一消息发送给第一网关。由于消息发送器的消息队列中可存有多个网关的待发送消息。因此,采用本方案,可在确定出当前时间周期内已发送到第一网关的消息数量达到设置阈值时,将获取到的待发送到第一网关的第一消息重新存入消息队列,以使服务器可继续从消息队列中获取并处理下一条消息,从而有效避免了不同网关的消息发送的互相影响。

A message sending method and server

An embodiment of the invention discloses a message sending method and a server, including: for any message sender in the server, the server gets the first message to be sent from the message queue of the message sender, and determines the current time period of the first message sender according to the first gateway to be sent to the first message. If the number of messages sent to the first gateway has reached a set threshold, then the first message is re deposited in the message queue, otherwise the first message is sent to the first gateway. Because there are multiple gateways to send messages in the message queue of the message sender. Therefore, using this scheme, the first message that is to be sent to the first gateway can be re stored in the message queue when the number of messages sent to the first gateway is reached within the current time period, so that the server can continue to obtain and process the next message from the message queue, thus effectively avoiding it. The interaction between messages from different gateways is avoided.

【技术实现步骤摘要】
一种消息发送方法及服务器
本专利技术涉及通信
,尤其涉及一种消息发送方法及服务器。
技术介绍
在传统的MAS(MobileAgentServer,移动代理服务器)业务中,用户在电信运营商开户后,电信运营商会为用户部署独立的MAS服务器,并为该用户设定一个网关。用户需要发送短信时,首先将短信提交到该MAS服务器,再由MAS服务器连接用户开户的网关,实现短信发送。一般来说,MAS服务器在为用户提供发送短信的服务时,可连接几个或几十个网关。如此,在MAS服务器内部可为每个网关均创建一个发送器,发送器中包括一个由有限大小的队列和由多个线程组成的线程池。于是,服务器在收到用户要发送的短信后,通过内部的相关逻辑,确定出该消息对应的网关,进而根据网关标识查找到该网关的发送器,然后将消息提交发送器,发送器按照该网关的发送速度进行消息发送。可以看出,在MAS服务器连接的网关数量不多的情况下,上述方案可以实现较高效率的短信发送,因为每个网关均具有一个独立的线程池不仅可以有效地利用CPU,还可避免不同网关的消息之间的互相影响。然而,随着业务模式的变化,电信运营商逐渐将MAS业务部署在云服务器上,在这种场景下,云服务器通常需要连接上万个网关,如此庞大的网关数量,为每个网关均创建一个独立的线程池的方案已不可取,否则CPU会在忙于在海量线程中进行切换而无力执行其他业务,进而导致了消息发送的速率降低。而若采用海量网关使用一个统一的线程池的方案,发送到多个网关的消息将按照消息提交到云服务器的顺序存在同一队列中,由于云服务器按照队列中消息的顺序进行依次处理,若发送到某一网关的消息数量较多,则会影响其他网关的消息发送。因此,目前亟需要一种消息发送方法,用于解决现有技术中云服务器在连接海量网关进行消息发送的复杂场景下,发送到不同网关的消息互相影响的技术问题。
技术实现思路
本专利技术提供一种消息发送方法及服务器,用于解决现有技术中云服务器在连接海量网关进行消息发送的复杂场景下,发送到不同网关的消息互相影响的技术问题。本专利技术实施例提供的一种消息发送方法,所述方法应用于服务器,所述服务器中包括多个消息发送器,每一消息发送器中均包括用于存储待发送消息的消息队列;所述消息发送器用于向对应的网关发送消息,且所述消息发送器对应至少一个网关;所述方法包括:针对第一消息发送器,所述服务器从所述第一消息发送器的消息队列中获取待发送的第一消息;所述第一消息是所述服务器根据所述第一消息所要发送到的第一网关存入所述第一消息发送器的消息队列中的;所述第一消息发送器为所述多个消息发送器中的任一消息发送器;所述服务器根据所述第一网关,判断所述第一消息发送器当前时间周期内已发送给所述第一网关的消息数量是否达到设定阈值,若达到所述设定阈值,则将所述第一消息重新存入所述消息队列,若没有达到所述设定阈值,则将所述第一消息发送给所述第一网关。可选地,所述服务器通过如下方式将所述第一消息存入所述第一消息发送器的消息队列中:所述服务器接收所述第一消息,确定所述第一消息所要发送到的第一网关;所述服务器根据所述第一网关以及所述服务器中存储的各网关与消息发送器的对应关系,确定出所述第一网关对应的第一消息发送器;所述服务器将所述第一消息存入所述第一消息发送器的消息队列中。可选地,所述服务器将所述第一消息存入所述第一消息发送器的消息队列中,包括:所述服务器获取所述第一消息发送器的消息队列存储的待发送到所述第一网关的待发送消息的第一消息数量;所述服务器若确定所述第一消息数量小于所述第一网关对应的队列消息限额,则将所述第一消息存入所述消息队列中。可选地,所述方法还包括:所述服务器若确定所述第一消息数量大于等于所述第一网关对应的队列消息限额,则获取所述服务器的消息缓存中存储的待发送到所述第一网关的待发送消息的第二消息数量;所述服务器若确定所述第二消息数量小于等于所述第一网关对应的缓存消息限额,则将所述第一消息存入所述消息缓存中,否则发出延迟提交指示,以指示所述第一消息的发送方在设定时间后再次提交所述第一消息。可选地,所述方法还包括:所述服务器按照设定周期获取所述第一消息数量以及所述第二消息数量;所述服务器若确定所述第一消息数量小于所述第一网关对应的队列消息限额,且所述第二消息数量不为零,则根据所述第一消息数量、所述第二消息数量以及所述第一网关对应的队列消息限额,将所述消息缓存中存储的待发送到所述第一网关的待发送消息存入所述第一消息发送器的消息队列中。可选地,所述消息队列包括发送队列和接收队列;所述服务器从所述第一消息发送器的消息队列中获取待发送的第一消息,包括:所述服务器从所述第一消息发送器的发送队列中获取待发送的第一消息;所述若达到所述设定阈值,则将所述第一消息重新存入所述消息队列,包括:若达到所述设定阈值,则将所述第一消息存入所述接收队列;所述服务器将所述第一消息存入所述第一消息发送器的消息队列中,包括:所述服务器将所述第一消息存入所述接收队列;所述方法还包括:所述服务器若确定所述第一消息发送器的所述发送队列中存储的消息发送完毕,则将所述发送队列设置为接收队列,同时将所述接收队列设置为发送队列。可选地,所述方法还包括:所述服务器周期性地获取每个消息发送器在设定时间段内发送的消息总数;所述服务器根据每个消息发送器发送的消息总数,调整所述各网关与消息发送器之间的对应关系。基于同样的专利技术构思,本专利技术实施例还提供一种服务器,所述服务器包括:获取模块,用于针对第一消息发送器,从所述第一消息发送器的消息队列中获取待发送的第一消息;所述第一消息是根据所述第一消息所要发送到的第一网关存入所述第一消息发送器的消息队列中的;所述第一消息发送器为多个消息发送器中的任一消息发送器;处理模块,用于根据所述第一网关,判断所述第一消息发送器当前时间周期内已发送给所述第一网关的消息数量是否达到设定阈值,若达到所述设定阈值,则将所述第一消息重新存入所述消息队列,若没有达到所述设定阈值,则将所述第一消息发送给所述第一网关。可选地,所述服务器中还包括收发模块,用于:接收所述第一消息,确定所述第一消息所要发送到的第一网关;根据所述第一网关以及所述服务器中存储的各网关与消息发送器的对应关系,确定出所述第一网关对应的第一消息发送器;将所述第一消息存入所述第一消息发送器的消息队列中。可选地,所述收发模块具体用于:获取所述第一消息发送器的消息队列存储的待发送到所述第一网关的待发送消息的第一消息数量;若确定所述第一消息数量小于所述第一网关对应的队列消息限额,则将所述第一消息存入所述消息队列中。可选地,所述收发模块还用于:若确定所述第一消息数量大于等于所述第一网关对应的队列消息限额,则获取所述服务器的消息缓存中存储的待发送到所述第一网关的待发送消息的第二消息数量;若确定所述第二消息数量小于等于所述第一网关对应的缓存消息限额,则将所述第一消息存入所述消息缓存中,否则发出延迟提交指示,以指示所述第一消息的发送方在设定时间后再次提交所述第一消息。可选地,所述处理模块还用于:按照设定周期获取所述第一消息数量以及所述第二消息数量;若确定所述第一消息数量小于所述第一网关对应的队列消息限额,且所述第二消息数量不为零,则根据所述第一消息数量、所述第二消本文档来自技高网
...
一种消息发送方法及服务器

【技术保护点】
一种消息发送方法,其特征在于,所述方法应用于服务器,所述服务器中包括多个消息发送器,每一消息发送器中均包括用于存储待发送消息的消息队列;所述消息发送器用于向对应的网关发送消息,且所述消息发送器对应至少一个网关;所述方法包括:针对第一消息发送器,所述服务器从所述第一消息发送器的消息队列中获取待发送的第一消息;所述第一消息是所述服务器根据所述第一消息所要发送到的第一网关存入所述第一消息发送器的消息队列中的;所述第一消息发送器为所述多个消息发送器中的任一消息发送器;所述服务器根据所述第一网关,判断所述第一消息发送器当前时间周期内已发送给所述第一网关的消息数量是否达到设定阈值,若达到所述设定阈值,则将所述第一消息重新存入所述消息队列,若没有达到所述设定阈值,则将所述第一消息发送给所述第一网关。

【技术特征摘要】
1.一种消息发送方法,其特征在于,所述方法应用于服务器,所述服务器中包括多个消息发送器,每一消息发送器中均包括用于存储待发送消息的消息队列;所述消息发送器用于向对应的网关发送消息,且所述消息发送器对应至少一个网关;所述方法包括:针对第一消息发送器,所述服务器从所述第一消息发送器的消息队列中获取待发送的第一消息;所述第一消息是所述服务器根据所述第一消息所要发送到的第一网关存入所述第一消息发送器的消息队列中的;所述第一消息发送器为所述多个消息发送器中的任一消息发送器;所述服务器根据所述第一网关,判断所述第一消息发送器当前时间周期内已发送给所述第一网关的消息数量是否达到设定阈值,若达到所述设定阈值,则将所述第一消息重新存入所述消息队列,若没有达到所述设定阈值,则将所述第一消息发送给所述第一网关。2.根据权利要求1所述的方法,其特征在于,所述服务器通过如下方式将所述第一消息存入所述第一消息发送器的消息队列中:所述服务器接收所述第一消息,确定所述第一消息所要发送到的第一网关;所述服务器根据所述第一网关以及所述服务器中存储的各网关与消息发送器的对应关系,确定出所述第一网关对应的第一消息发送器;所述服务器将所述第一消息存入所述第一消息发送器的消息队列中。3.根据权利要求2所述的方法,其特征在于,所述服务器将所述第一消息存入所述第一消息发送器的消息队列中,包括:所述服务器获取所述第一消息发送器的消息队列存储的待发送到所述第一网关的待发送消息的第一消息数量;所述服务器若确定所述第一消息数量小于所述第一网关对应的队列消息限额,则将所述第一消息存入所述消息队列中。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:所述服务器若确定所述第一消息数量大于等于所述第一网关对应的队列消息限额,则获取所述服务器的消息缓存中存储的待发送到所述第一网关的待发送消息的第二消息数量;所述服务器若确定所述第二消息数量小于等于所述第一网关对应的缓存消息限额,则将所述第一消息存入所述消息缓存中,否则发出延迟提交指示,以指示所述第一消息的发送方在设定时间后再次提交所述第一消息。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:所述服务器按照设定周期获取所述第一消息数量以及所述第二消息数量;所述服务器若确定所述第一消息数量小于所述第一网关对应的队列消息限额,且所述第二消息数量不为零,则根据所述第一消息数量、所述第二消息数量以及所述第一网关对应的队列消息限额,将所述消息缓存中存储的待发送到所述第一网关的待发送消息存入所述第一消息发送器的消息队列中。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述消息队列包括发送队列和接收队列;所述服务器从所述第一消息发送器的消息队列中获取待发送的第一消息,包括:所述服务器从所述第一消息发送器的发送队列中获取待发送的第一消息;所述若达到所述设定阈值,则将所述第一消息重新存入所述消息队列,包括:若达到所述设定阈值,则将所述第一消息存入所述接收队列;所述服务器将所述第一消息存入所述第一消息发送器的消息队列中,包括:所述服务器将所述第一消息存入所述接收队列;所述方法还包括:所述服务器若确定所述第一消息发送器的所述发送队列中存储的消息发送完毕,则将所述发送队列设置为接收队列,同时将所述接收队列设置为发送队列。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:所述服务器周期性地获取每个消息发送器在设定时间段内发送的消息总数;...

【专利技术属性】
技术研发人员:崔洪清李翔王军
申请(专利权)人:联动优势科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1