CN114338553B - 消息发送方法、装置、电子设备和存储介质 - Google Patents

消息发送方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN114338553B
CN114338553B CN202111466468.6A CN202111466468A CN114338553B CN 114338553 B CN114338553 B CN 114338553B CN 202111466468 A CN202111466468 A CN 202111466468A CN 114338553 B CN114338553 B CN 114338553B
Authority
CN
China
Prior art keywords
sent
message
time
messages
delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111466468.6A
Other languages
English (en)
Other versions
CN114338553A (zh
Inventor
李阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Oribo Technology Co Ltd
Original Assignee
Shenzhen Oribo Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Oribo Technology Co Ltd filed Critical Shenzhen Oribo Technology Co Ltd
Priority to CN202111466468.6A priority Critical patent/CN114338553B/zh
Publication of CN114338553A publication Critical patent/CN114338553A/zh
Application granted granted Critical
Publication of CN114338553B publication Critical patent/CN114338553B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例公开了一种消息发送方法、装置、电子设备及存储介质。本申请实施例基于消息获取指令,将消息获取指令所获取的消息作为待发送消息;根据实时带宽值和待发送消息,确定待发送消息是否符合延迟处理条件;若符合,则将待发送消息延迟发送至终端设备。以此,在服务器因设备请求的数据量过大而造成瞬间流量超过服务器带宽上限时,通过延迟发送设备请求的数据以防止数据丢失,保证了数据的完整性,同时提高了用户的使用体验感。

Description

消息发送方法、装置、电子设备和存储介质
技术领域
本申请涉及数据传输技术领域,更具体地,涉及一种消息发送方法、装置、电子设备和存储介质。
背景技术
目前,随着互联网的全面普及,不同设备之间通过网络进行数据交互已成为常态。因此,如何确保数据交互过程中数据传输的完整性是一个非常重要的问题。
在物联网和5G技术普及的当下社会,在万物互联的未来生活场景推动下,蓬勃发展的物联网产业为人们的生活带来了越来越多的便利,更是让智能家居产品融入了千家万户,但在智能家居产品的使用过程中,也逐渐浮现了一些相应的问题。特别是在对现有技术的研究和实践过程中,本申请的发明人发现,现有技术中由于可能出现大量设备向某一设备实时请求数据并要求实时返回,导致被请求的设备瞬间流量带宽超限,造成数据丢失,从而使得数据无法完整传输给请求设备,用户体验感差。
发明内容
鉴于上述问题,本申请提出了一种消息发送方法、装置、电子设备及存储介质,可以有效改善因服务器瞬间带宽超限而导致数据丢失的技术问题,确保数据传输的完整性。
为了解决上述的技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供了一种消息发送方法,该方法应用于服务器,该方法包括:基于消息获取指令,将消息获取指令所获取的消息作为待发送消息;根据实时带宽值和待发送消息,确定待发送消息是否符合延迟处理条件;若符合,则将待发送消息延迟发送至终端设备。
第二方面,本申请实施例提供了一种消息发送装置,该装置应用于服务器,该装置包括待发送消息确定模块、延迟处理判断模块和延迟处理模块。待发送消息确定模块,用于基于消息获取指令,将消息获取指令所请求的消息作为待发送消息;延迟处理判断模块,用于根据实时带宽值和待发送消息,确定所述待发送消息是否符合延迟处理条件;延迟处理模块,用于若符合,则将所述待发送消息延迟发送至终端设备。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器、存储器以及一个或多个应用程序。其中,一个或多个应用程序被存储在存储器中并被配置由一个或多个处理器执行,一个或多个程序配置用于执行上述消息发送方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,该计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述消息发送方法。
本申请提供的技术方案中,基于消息获取指令,将消息获取指令所获取的消息作为待发送消息;根据实时带宽值和待发送消息,确定待发送消息是否符合延迟处理条件;若符合,则将待发送消息延迟发送至终端设备。以此,在服务器因设备请求的数据量过大而造成瞬间流量超过服务器带宽上限时,通过延迟发送设备请求的数据以防止数据丢失,保证了数据的完整性,同时提高了用户的使用体验感。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的消息发送系统的应用场景示意图。
图2是本申请实施例提供的消息发送方法的流程示意图。
图3是本申请实施例提供的消息发送装置的结构示意图。
图4是本申请实施例提供的电子设备的结构示意图。
图5是本申请实施例提供的计算机可读取存储介质的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种消息发送方法、装置、电子设备及存储介质。
请参阅图1,图1为本申请实施例所提供的一种消息发送系统的应用场景示意图,包括:服务器A、终端设备B。其中,服务器A可以是指单独的服务器,也可以是指服务器集群;可以是本地服务器,也可以是云端服务器。终端设备B可以是智能手机、智能家居控制面板、智能音箱、智能电视、笔记本电脑、台式电脑、平板电脑等。在一些实施方式下,终端设备B可以存在多个,即服务器A可以和多个终端设备B建立连接。
在一些实施方式中,服务器A与终端设备B之间可以通过网络连接,网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施方式中,服务器A和终端设备B可以通过特定的通信协议进行通信传输,通信协议包括但不限于BLE(Bluetooth lowenergy,低功耗蓝牙)协议、WLAN(Wireless Local Area Network,无线局域网)协议、蓝牙协议、ZigBee(紫峰)协议或者Wi-Fi(Wireless Fidelity,无线保真)协议等。网络中还可以包括路由器、网关等等网络实体,图中并未示意出。
服务器A和终端设备B通过网络进行信息交互,服务器A可以基于消息获取指令,将消息获取指令所获取的消息作为待发送消息;根据实时带宽值和待发送消息,确定待发送消息是否符合延迟处理条件;若符合,则将待发送消息延迟发送至终端设备B。
需要说明的是,图1所示的消息发送系统的应用场景示意图仅仅是一个示例,本申请实施例描述的消息发送系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着消息发送系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面将通过具体实施例来进行详细介绍。
请参阅图2,图2是本申请实施例提供的消息发送方法的流程示意图。该消息发送方法包括步骤110至步骤130。
在步骤110中,基于消息获取指令,将消息获取指令所获取的消息作为待发送消息。
其中,消息获取指令用于使服务器根据该指令查询要发送至终端设备的消息,具体地,服务器根据消息获取指令获取对应的消息,并将消息获取指令所需要获取的消息作为要发送至其他终端设备的待发送消息。
在一些实施方式中,消息获取指令可以由其他终端设备向服务器发送,即终端设备向服务器发送消息获取指令来请求获取自身需要的消息。例如,聊天过程中,用户在终端设备A上需要查看与朋友之间过往的聊天记录,点击“查看聊天记录”可向服务器B发送消息获取指令用于获取聊天记录,服务器B接收到消息获取指令后确定终端设备A需要获取的消息为聊天记录,则将聊天记录作为待发送消息。
进一步地,消息获取指令还可以由其他中转设备向服务器发送,即可以不是由生成该指令的终端设备发送。例如,终端设备A发送的消息获取指令是用于获取服务器B上的消息,但终端设备A无法将指令直接发送至服务器B上,而需要通过服务器C进行转发至服务器B,因此,终端设备A可以通过服务器C向服务器B发送消息获取指令,即服务器B接收到的消息获取指令是由服务器C发送的。
在一些实施方式中,消息获取指令也可以是服务器主动向其他终端发送,即服务器主动生成消息获取指令用于向其他终端设备发送消息。例如,可以在服务器B中设置每隔5s生成消息获取指令的定时任务,服务器B每隔5s收到生成的消息获取指令,根据该指令服务器B可以明确此时需要向终端设备A发送消息,这些消息即为待发送消息。
在步骤120中,根据实时带宽值和待发送消息,确定待发送消息是否符合延迟处理条件。
在一些实施方式中,实时带宽值为服务器根据消息获取指令获取到待发送消息时的带宽值。例如,A时刻服务器根据消息获取指令向终端设备发送待发送消息,该时刻服务器的带宽值为4Mbps(兆比特率),则A时刻服务器的实时带宽值为4Mbps。
具体地,服务器根据自身的实时带宽值和需要发送至终端设备的待发送消息,判断待发送消息是否满足延迟处理条件,若满足延迟处理条件,则延迟发送待发送消息,否则实时发送待发送消息。其中,带宽阈值可以为服务器的带宽值上限,也可以小于服务器的带宽值上限以使可以提前对服务器的带宽值进行管控,进一步减少丢包的可能性。
若服务器向终端设备发送待发送消息时带宽超过服务器的带宽阈值,会造成待发送消息数据在发送过程出现随机丢包的情况,导致待发送消息无法完整传输至终端设备,影响用户的使用体验。因此,在服务器发送待发送消息前需要先判断是否会超过服务器的带宽阈值,若超过带宽阈值,需要将待发送消息延迟处理,即延迟发送。
在一些实施方式中,该根据实时带宽值和待发送消息,确定待发送消息是否符合延迟处理条件,包括:
(1)若实时带宽值大于或等于带宽阈值,则确定该待发送消息符合延迟处理条件。或者,
(2)若实时带宽值与发送该待发送消息所需的带宽值之和大于或等于带宽阈值,则确定该待发送消息符合延迟处理条件。
其中,由于服务器发送待发送消息数据过程中除了需要发送的消息数据,传输过程中还需要在消息数据外封装各层级的网络协议,因此还存在对应的协议开销,所以实际上可用于传输数据的带宽值小于带宽阈值。故为了保证服务器在传输待发送消息过程中传输的稳定性,减少待发送消息数据在发送过程中发生丢包的可能性,因此将延迟处理条件设置为大于或等于服务器的带宽阈值。
在一种实施例中,可以根据服务器的实时带宽值确定待发送消息是否符合延迟处理条件。若服务器的实时带宽值大于或等于带宽阈值,则确定待发送消息符合延迟处理条件,服务器将待发送消息延迟发送至终端设备。
具体地,服务器在发送待发送消息前先确定自身的实时带宽值,若服务器的实时带宽值大于或等于带宽阈值,表明此时服务器已处于满负荷或超负荷状态,若在此情况下若仍实时发送待发送消息至终端设备,会有丢包的可能性,从而导致待发送消息无法完整发送至终端设备,因此需要将待发送消息延迟发送至终端设备。示例性地,服务器的带宽阈值为10Mbps,A时刻服务器向终端设备实时发送待发送消息前确定此时的实时带宽值为11Mbps,实时带宽值已超过带宽阈值,则确定待发送消息满足延迟处理条件,因此服务器将延迟发送待发送消息至终端设备。
在一种实施例中,也可以根据服务器的实时带宽值和发送待发送消息所需的带宽值确定待发送消息是否符合延迟处理条件。如若服务器的实时带宽值与发送待发送消息所需的带宽值二者之和大于或等于服务器的带宽阈值,则确定待发送消息符合延迟处理条件。
具体地,服务器向终端设备发送待发送消息前除了需要确认此时的实时带宽值,还需要确认若发送待发送消息需要占用的带宽值。其中,服务器可以根据待发送消息的数据量确认发送待发送消息所需的带宽值。例如,待发送消息的数据量为0.125MB(兆字节),则根据数据换算规则可以得到0.125MB=1000000bit,而1Mbps每秒可传输1000000bit的数据量,因此服务器发送0.125MB的待发送消息需要的带宽值为1Mbps。
与上述只根据服务器的实时带宽值判断是否将待发送消息延迟处理的方法相比,每次向终端设备发送待发送消息前,服务器同时根据自身的实时带宽值和发送待发送消息所需的带宽值之和判断是否需要延迟发送待发送消息,可以进一步确保发送待发送消息时服务器的带宽值小于带宽阈值,减少丢包情况的发生。
示例性地,服务器的带宽阈值为10Mbps,A时刻向终端设备实时发送待发送消息前服务器确定此时的实时带宽值为6Mbps,而待发送消息的数据量为1MB,经过换算可得1MB=8000000bit,则服务器发送待发送消息至终端设备共需要的带宽值大小为8Mbps,计算可得服务器的实时带宽值与发送待发送消息所需的带宽值之和大于带宽阈值,即6Mbps+8Mbps>10Mbps,因此该数据量为1MB的待发送消息满足延迟处理条件,服务器需要将待发送消息延迟发送至终端设备。
在一种实施例中,还可以服务器发送待发送消息前,先判断实时带宽值是否大于或等于服务器的带宽阈值,若是,则直接延迟发送待发送消息;若小于带宽阈值,则进一步判断实时带宽值与发送待发送消息所需的带宽值之和是否大于或等于服务器的带宽阈值,若是,则延迟发送待发送消息至终端设备。这种方法既避免了每次都要计算发送待发送消息所需的带宽值,又能确保服务器发送待发送消息时带宽值小于带宽阈值,减少丢包情况的发生。
在步骤130中,若符合,则将待发送消息延迟发送至终端设备。
其中,若待发送消息符合延迟处理条件,则服务器将待发送消息延迟发送至终端设备,即与其他消息数据错峰发送,减少服务器瞬时带宽承载压力,避免服务器的瞬时带宽超限,从而造成待发送消息传输过程中出现丢包情况,使得待发送消息无法完整发送至终端设备。
在一些实施例中,确定待发送消息符合延迟处理条件后,可以定时扫描服务器的带宽,直至检测到服务器不符合延迟处理条件,则在该时刻发送待发送消息至终端设备。可以理解地,定时扫描时间间隔越短,检测到待发送消息不符合延迟处理条件的时间越早。这种方法操作简单,但频繁快速扫描服务器带宽会浪费大量资源,因此,可以根据实际使用需要设置定时扫描时间间隔的时长。
在一些实施方式中,该将待发送消息延迟发送至终端设备,包括:
(1)根据延迟间隔依次将该待发送消息延迟发送至终端设备。
具体地,由于待发送消息之间存在先后顺序,因此当待发送消息满足延迟处理条件,需要根据延迟间隔依次将待发送消息延迟发送至终端设备。其中,延迟间隔为每次延迟发送待发送消息的时间间隔。
可选地,延迟间隔可以为预先设置的固定的值,例如1ms、3ms、5ms等。可选地,延迟间隔也可以是根据待发送消息的数量动态调整的值,例如,当待发送消息的数量较多时将延迟间隔设置为较小的时间间隔,当待发送消息的数量较少时则可以将延迟间隔设置为较大的时间间隔。
在一些实施方式中,可以利用定时器每隔一个延迟间隔发送一个待发送消息至终端设备。例如,利用定时器每1s自动发送一个待发送消息至终端设备。进一步地,为了更好地利用定时器发送待发送消息,还可以将待发送消息通过链表中的指针按顺序连接起来,每隔一个延迟间隔定时器发送指针指向的待发送消息至终端设备。
在一些实施方式中,该根据延迟间隔依次将该待发送消息延迟发送至终端设备,包括:
(1.1)根据预设总延迟时间和该待发送消息的数量确定延迟间隔;
(1.2)从接收到该消息获取指令起的该预设总延迟时间内,按该延迟间隔依次将该待发送消息发送至终端设备;
其中,由于待发送消息满足延迟处理条件时,服务器需要将其延迟发送至终端设备,因此为了实现延迟发送避免服务器瞬间带宽超限,服务器延迟发送待发送消息的总时间即预设总时间需要大于零。
在一些实施方式中,延迟间隔可以根据预设总延迟时间和需要发送的待发送消息的总消息数量确定,示例性地,延迟间隔=预设总延迟时间÷待发送消息的数量。具体地,服务器根据预设总延迟时间和需要发送的待发送消息的数量确定延迟间隔,即相邻两次发送待发送消息的时间间隔。在确定好延迟发送待发送消息的延迟间隔后,服务器从接收到消息获取指令起的预设总延迟时间内,按延迟间隔每次至少发送一条待发送消息至终端设备,即服务器每次发送将至少一条待发送消息发送至终端设备。
在一种实施例中,确定的延迟间隔可以为每条待发送消息延迟发送的时间间隔,即服务器根据延迟间隔每次发送一条待发送消息至终端设备。示例性地,预设总延迟时间为10ms,一共10条待发送消息,服务器每次发送一条待发送消息至终端设备,则延迟间隔为10ms÷10=1ms,即服务器每隔1ms将一条待发送消息发送至终端设备。
在一种实施例中,确定的延迟间隔也可以为每次发送多条待发送消息的时间间隔,即服务器根据延迟间隔每次发送多条待发送消息至终端设备。示例性地,预设总延迟时间为10ms,一共10条待发送消息,服务器每次发送2条待发送消息至终端设备,则延迟间隔为10ms÷(10÷2)=2ms,即服务器每隔2ms将两条待发送消息发送至终端设备。
在一些实施方式中,该从接收到该消息获取指令起的该预设总延迟时间内,按该延迟间隔依次将该待发送消息发送至终端设备,包括:
(2.1)从接收到该消息获取指令起的该预设总延迟时间内,根据该延迟间隔确定每条该待发送消息的延迟发送时间;
(2.2)根据该待发送消息的延迟发送时间将该待发送消息发送至终端设备;其中,相邻两条该待发送消息的延迟发送时间相差该延迟间隔。
其中,确定待发送消息满足延迟处理条件后,服务器从接收到消息获取指令起的预设总延迟时间内,根据延迟间隔确定每条待发送消息的延迟发送时间,即每条待发送消息的延迟发送时间点。之后服务器再根据每条待发送消息的延迟发送时间将其发送至终端设备。相邻两条待发送消息的延迟发送时间之差为延迟间隔,即相邻两条待发送消息的延迟发送时间相差延迟间隔。
在一种实施例中,待发送消息的延迟时长=延迟间隔×待发送消息的发送顺序,例如,两条待发送消息,延迟间隔为3ms,则第一条待发送消息的延迟时长=延迟间隔3ms×发送顺序1=3ms,第二条待发送消息的延迟时长=延迟间隔3ms×发送顺序2=6ms。
进一步地,待发送消息的延迟发送时间=延迟时长+实时发送时间。示例性地,服务器向终端设备发送的待发送消息的数量一共为3条,当待发送消息全部实时发送时的发送时间为10:00:00,但由于待发送消息满足延迟处理条件,因此需要将3条待发送消息延迟发送至终端设备,设置预设总延迟时间为10s,延迟间隔为2s,可以得到三条待发送消息的延迟时长为分别为2s、4s和6s,因此第一条待发送消息的延迟发送时间为10:00:02,第二条待发送消息的延迟发送时间为10:00:04,第三条待发送消息的延迟发送时间为10:00:06,从而服务器根据三条待发送消息的延迟发送时间依次将其发送至终端服务器。
在一些实施方式中,该根据该待发送消息的延迟发送时间将该待发送消息发送至终端设备,包括:
(3.1)根据该待发送消息的该延迟发送时间的先后顺序获取预设初始数量的该待发送消息;
(3.2)在时间轮的时间槽中设置与该预设初始数量的该待发送消息对应的待发送任务;
(3.3)该时间轮每隔该延迟间隔依次执行该时间槽中对应的该待发送任务,以将该待发送任务对应的该待发送消息发送至终端设备。
其中,待发送任务为根据待发送消息生成,携带有待发送消息的任务;预设初始数量为自定义的初始加载至时间轮的时间槽中的待发送消息的数量,时间槽可根据这些待发送消息设置对应的待发送任务;每个时间槽的时长为一个延迟间隔,每移动一个时间槽相当于过了一个延迟间隔。
具体地,服务器根据每条待发送消息对应的延迟发送时间的先后顺序获取预设初始数量的待发送消息,例如,有三条待发送消息对应的延迟发送时间分别为8:11、8:12、8:13,服务器需要获取预设初始数量为2的待发送消息,则获取延迟发送时间为8:11和8:12的待发送消息。
进一步地,获取到预设初始数量的待发送消息后,在时间轮的时间槽中设置与获取的待发送消息对应的待发送任务,即在时间槽中设置预设初始数量的待发送任务,其中,每个待发送任务对应其中一个待发送消息。之后每隔延迟间隔依次执行时间槽中的对应的待发送任务,以使将待发送任务中携带的待发送消息发送至终端设备。其中,一个时间轮中包含两个或两个以上即多个时间槽,由于每个时间槽对应其中一个待发送任务,因此时间槽的数量应不小于待发送任务的数量,即预设初始数量。可以理解地,由于每条待发送消息对应有延迟发送时间,所以待发送消息执行时存在先后顺序,因此根据待发送消息生成的待发送任务执行时也存在先后顺序,当待发送任务保存至时间槽中时,使得时间槽也具有执行上的先后顺序,即时间槽的执行先后顺序与待发送任务所对应的待发送消息的延迟发送时间的先后顺序对应。
在一些实施方式中,一个待发送任务中可以存在多个待发送消息,即每执行一个时间槽发送一个待发送任务,可发送多个待发送消息至终端设备。
进一步地,由于服务器内部系统时间存在时间精度误差,当误差累积到一定程度会导致时间出现错误,从而使得待发送任务无法准时发送,因此可以定时对系统时间进行校准尽量避免时间精度误差带来的影响。
在一些实施方式中,该根据该待发送消息的该延迟发送时间的先后顺序获取预设初始数量的该待发送消息之后,还包括:
(4.1)若该待发送消息的数量大于该预设初始数量,则将待发送信息中未被获取的该待发送消息加载至待加载日志;
该在时间轮的时间槽中设置与该预设初始数量的该待发送消息对应的待发送任务之后,还包括:
(4.2)确定该待加载日志中是否存在未设置待发送任务的待发送消息,若存在,则获取预设加载数量的待发送消息;
(4.3)在该时间轮的空闲的时间槽中设置与该预设加载数量的待发送消息对应的待发送任务,并返回执行该确定所述待加载日志中是否存在未设置待发送任务的待发送消息。
其中,每次时间轮从时间槽中发送预设加载数量的待发送任务后从待加载日志中加载相同数量即预设加载数量的待发送消息,并将对应设置为待发送任务后加载至空闲时间槽,即不存在待发送任务的时间槽,也即未设置有未执行过的待发送任务。例如,时间轮中存在预设初始数量为10的待发送任务,设置预设加载数量为3,则每当时间轮发送数量为3的待发送任务至终端设备时,从待加载日志中加载数量为3的待发送消息,并根据待发送消息设置对应的待发送任务至空闲时间槽中等待到达延迟发送时间时发送。
服务器将获取的预设初始数量的待发送消息加载至时间槽后,确定待加载日志中是否存在未设置待发送任务的待发送消息,即判断待加载日志中是否还存在待发送消息,也即判断待发送消息的数量大于是否大于预设初始数量,此处所说的数量是指待发送消息的总消息数量。若待发送消息的数量大于是否大于预设初始数量,则将未被加载至时间槽中的待发送消息加载至待加载日志。之后时间轮根据时间槽中待发送任务的时间先后顺序,依次将待发送任务中的待发送消息发送终端设备。当发送预设加载数量的待发送任务时从待加载日志中加载预设加载数量的待发送消息,在空闲时间槽中设置与预设加载数量的待发送消息对应的待发送任务。加载完成后重新返回确定待加载日志中是否还存在待发送消息,直至待加载日志中不存在待发送消息即不存在未设置待发送任务的待发送消息。将除预设加载数量的待发送消息保存至待加载日志,可以减少服务器的内存占用量,即减少服务器开销。
在一些实施方式中,该根据该待发送消息的该延迟发送时间的先后顺序获取预设初始数量的该待发送消息之前,还包括:
(5.1)将该待发送消息加载至待加载日志;
该根据所述待发送消息的所述延迟发送时间的先后顺序获取预设初始数量的所述待发送消息,包括:
(5.2)从该待加载日志中根据该待发送消息的该延迟发送时间的先后顺序获取预设初始数量的该待发送消息;
该在时间轮的时间槽中设置与该预设初始数量的该待发送消息对应的待发送任务之后,还包括:
(5.3)确定该待加载日志中是否存在未设置待发送任务的待发送消息,若存在,则获取预设加载数量的待发送消息;
(5.4)在该时间轮的空闲的时间槽中设置与该预设加载数量的待发送消息对应的待发送任务,并返回执行该确定该待加载日志中是否存在未设置待发送任务的待发送消息。
其中,待发送消息也可以先全部加载至待加载日志,再从待加载日志中加载待发送消息至时间轮。具体地,将待发送消息加载至待加载日志,从待加载日志中根据保存的待发送消息的延迟发送时间确定待发送消息的先后顺序,再按时间先后获取预设初始数量的待发送消息。在时间轮的时间槽中设置与预设初始数量的待发送消息对应的待发送任务,然后确定待加载日志中是否还存在待发送消息,若存在则当时间轮发送预设加载数量的待发送任务至终端设备后从待加载日志中加载同样数量的待发送消息,设置与其对应的待发送任务至空闲时间槽中,直至待加载日志中不存在待发送消息,这个过程与上述实施方式类似,在此不再详细介绍。将待发送消息先全部加载至待加载日志,再加载至时间轮,可以进一步减少服务器开销。
在一些实施方式中,还可以设置每预设加载数量的待发送消息为一组保存在待加载日志中,以使可以每次直接从待加载日志中加载一组待发送消息至时间轮的空闲时间槽。例如,待发送消息数量为100,预设加载数量为25,则每25个待发送消息在待加载日志中保存为一组。
在一些实施方式中,该将所述待发送消息延迟发送至终端设备,包括:
(6.1)若符合,则从接收到所述消息获取指令起的预设总延迟时间内,将所述待发送消息延迟发送至终端设备。
其中,预设总延迟时间为当待发送消息满足延迟处理条件时,根据需求自行设定的延迟发送待发送消息的时间。例如,当待发送消息满足延迟处理条件时,设置预设总延迟时间为10ms,则服务器需要将待发送消息在接收到消息获取指令起的10ms内全部发送至终端设备。
在实际生产应用中,若终端设备一直等待服务器发送待传输消息直至传输完毕,会造成资源的严重浪费,因此终端设备接收服务器发送的待发送消息时会设置一个超时时间,即终端设备会等待服务器传输待发送消息的最大时间。若服务器在此时间内仍未将待发送消息传输完毕,终端设备将断开与服务器之间的数据传输链路,即终端设备将不再继续接收剩余的待发送消息。
在本实施例中,当待发送消息符合延迟处理条件时,将从服务器接收到消息获取指令起的预设总延迟时间内,将待发送消息全部发送至终端设备。为了保证服务器将待发送消息在终端设备断开连接之前将待发送消息全部发送至终端设备,可以设置预设总延迟时间小于或等于终端设备的超时时间。
进一步地,由于待发送消息在传输过程中可能存在时间损耗,为了更好地保证待发送消息完整传输至终端设备,可以设置预设总延迟时间小于终端设备的超时时间。例如,终端设备的超时时间为30s,则预设总延迟时间可以设置为小于30s的任意时间值。
由上述可知,本申请实施例基于消息获取指令,将消息获取指令所获取的消息作为待发送消息;根据实时带宽值和待发送消息,确定待发送消息是否符合延迟处理条件;若符合,则将待发送消息延迟发送至终端设备。以此,在服务器因设备请求的数据量过大而造成瞬间流量超过服务器带宽上限时,通过延迟发送设备请求的数据以防止数据丢失,保证了数据的完整性,同时提高了用户的使用体验感。
请参阅图3,图3为本申请实施例提供的消息发送装置200的结构示意图,该消息发送装置200应用于服务器,其中该消息发送装置200可以包括待发送消息确定模块201、延迟处理判断模块202和延迟处理模块203,具体地:
待发送消息确定模块201,用于基于消息获取指令,将消息获取指令所获取的消息作为待发送消息;
延迟处理判断模块202,用于根据实时带宽值和待发送消息,确定待发送消息是否符合延迟处理条件;
延迟处理模块203,用于若符合,则将待发送消息延迟发送至终端设备。
在一些实施例中,延迟处理判断模块202,包括:
第一结果单元,用于若实时带宽值大于或等于带宽阈值,则确定待发送消息符合延迟处理条件;或者
第二结果单元,用于若实时带宽值与发送待发送消息所需的带宽值之和大于或等于带宽阈值,则确定待发送消息符合延迟处理条件。
在一些实施例中,延迟处理模块203,还用于根据延迟间隔依次将待发送消息延迟发送至终端设备。
在一些实施例中,延迟处理模块203,包括:
延迟间隔确定单元,用于根据预设总延迟时间和待发送消息的数量确定延迟间隔;其中,预设总延迟时间大于零;
延迟处理单元,用于从接收到消息获取指令起的预设总延迟时间内,按延迟间隔依次将待发送消息发送至终端设备;其中,每次发送将至少一条待发送消息发送至终端设备。
在一些实施例中,延迟处理单元,还包括:
时间确定子单元,用于从接收到消息获取指令起的预设总延迟时间内,根据延迟间隔确定每条待发送消息的延迟发送时间;
延迟发送子单元,用于根据待发送消息的延迟发送时间将待发送消息发送至终端设备;其中,相邻两条待发送消息的延迟发送时间相差延迟间隔。
在一些实施例中,延迟发送子单元,还用于根据待发送消息的延迟发送时间的先后顺序获取预设初始数量的待发送消息;在时间轮的时间槽中设置与预设初始数量的待发送消息对应的待发送任务;其中,时间轮包括多个时间槽,时间槽的数量不小于预设初始数量,每个时间槽对应其中一个待发送任务,每个待发送任务对应其中一个待发送消息;时间轮每隔延迟间隔依次执行时间槽中对应的待发送任务,以将待发送任务对应的待发送消息发送至终端设备;其中,时间槽的执行先后顺序与待发送任务所对应的待发送消息的延迟发送时间的先后顺序对应。
在一些实施例中,该延迟发送子单元,还用于若待发送消息的数量大于预设初始数量,则将待发送信息中未被获取的待发送消息加载至待加载日志;确定待加载日志中是否存在未设置待发送任务的待发送消息,若存在,则获取预设加载数量的待发送消息;在时间轮的空闲的时间槽中设置与预设加载数量的待发送消息对应的待发送任务,并返回执行确定待加载日志中是否存在未设置待发送任务的待发送消息;其中,空闲的时间槽中未设置有未执行过的待发送任务。
在一些实施例中,该延迟发送子单元,还用于将待发送消息加载至待加载日志;从待加载日志中根据待发送消息的延迟发送时间的先后顺序获取预设初始数量的待发送消息;确定待加载日志中是否存在未设置待发送任务的待发送消息,若存在,则获取预设加载数量的待发送消息;在时间轮的空闲的时间槽中设置与预设加载数量的待发送消息对应的待发送任务,并返回执行确定待加载日志中是否存在未设置待发送任务的待发送消息;其中,空闲的时间槽中未设置有未执行过的待发送任务。
在一些实施例中,该延迟处理模块203,还用于若符合,则从接收到消息获取指令起的预设总延迟时间内,将待发送消息延迟发送至终端设备;其中,预设总延迟时间小于终端设备的超时时间。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图4,图4为本申请实施例提供的电子设备300的结构示意图,该电子设备300可以是智能手机、平板电脑、电子书、触摸屏等能够运行应用程序的电子设备。本申请中的电子设备300可以包括一个或多个如下部件:处理器310、存储器320、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器320中并被配置为由一个或多个处理器310执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器310可以包括一个或者多个处理核。处理器310利用各种接口和线路连接整个电子设备300内的各个部分,通过运行或执行存储在存储器320内的指令、程序、代码集或指令集,以及调用存储在存储器320内的数据,执行电子设备300的各种功能和处理数据。可选地,处理器310可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器310可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器310中,单独通过一块通信芯片进行实现。
存储器320可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器320可用于存储指令、程序、代码、代码集或指令集。存储器320可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如延迟发送功能、判断功能、加载功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端300在使用中所创建的数据(比如待发送消息、实时带宽值、总延迟时间等)。
请参阅图5,图5为本申请实施例提供的计算机可读取存储介质的结构示意图。该计算机可读取介质400中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码410可以例如以适当形式进行压缩。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施方式中描述的消息发送方法。
本申请提供的消息发送方法、装置、电子设备及存储介质,基于消息获取指令,将消息获取指令所获取的消息作为待发送消息;根据实时带宽值和待发送消息,确定待发送消息是否符合延迟处理条件;若符合,则将待发送消息延迟发送至终端设备。以此,在服务器因设备请求的数据量过大而造成瞬间流量超过服务器带宽上限时,通过延迟发送设备请求的数据以防止数据丢失,保证了数据的完整性,同时提高了用户的使用体验感。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种消息发送方法,其特征在于,应用于服务器,所述消息发送方法包括:
基于消息获取指令,将所述消息获取指令所获取的消息作为待发送消息;
根据实时带宽值和所述待发送消息所需的带宽值,确定所述待发送消息是否符合延迟处理条件;
若实时带宽值大于或等于带宽阈值,或者若实时带宽值小于带宽阈值,且实时带宽值与发送所述待发送消息所需的带宽值之和大于或等于带宽阈值,则确定所述待发送消息符合延迟处理条件;
将所述待发送消息延迟发送至终端设备。
2.根据权利要求1所述的方法,其特征在于,所述将所述待发送消息延迟发送至终端设备,包括:
根据延迟间隔依次将所述待发送消息延迟发送至终端设备。
3.根据权利要求2所述的方法,其特征在于,所述根据延迟间隔依次将所述待发送消息延迟发送至终端设备,包括:
根据预设总延迟时间和所述待发送消息的数量确定延迟间隔;其中,所述预设总延迟时间大于零;
从接收到所述消息获取指令起的所述预设总延迟时间内,按所述延迟间隔依次将所述待发送消息发送至终端设备;其中,每次发送将至少一条所述待发送消息发送至所述终端设备。
4.根据权利要求3所述的方法,其特征在于,所述从接收到所述消息获取指令起的所述预设总延迟时间内,按所述延迟间隔依次将所述待发送消息发送至终端设备,包括:
从接收到所述消息获取指令起的所述预设总延迟时间内,根据所述延迟间隔确定每条所述待发送消息的延迟发送时间;
根据所述待发送消息的延迟发送时间将所述待发送消息发送至终端设备;其中,相邻两条所述待发送消息的延迟发送时间相差所述延迟间隔。
5.根据权利要求4所述的方法,其特征在于,所述根据所述待发送消息的延迟发送时间将所述待发送消息发送至终端设备,包括:
根据所述待发送消息的所述延迟发送时间的先后顺序获取预设初始数量的所述待发送消息;
在时间轮的时间槽中设置与所述预设初始数量的所述待发送消息对应的待发送任务;其中,所述时间轮包括多个所述时间槽,所述时间槽的数量不小于所述预设初始数量,每个所述时间槽对应其中一个所述待发送任务,每个所述待发送任务对应其中一个所述待发送消息;
所述时间轮每隔所述延迟间隔依次执行所述时间槽中对应的所述待发送任务,以将所述待发送任务对应的所述待发送消息发送至终端设备;其中,所述时间槽的执行先后顺序与所述待发送任务所对应的待发送消息的所述延迟发送时间的先后顺序对应。
6.根据权利要求5所述的方法,其特征在于,所述根据所述待发送消息的所述延迟发送时间的先后顺序获取预设初始数量的所述待发送消息之后,所述方法还包括:
若所述待发送消息的数量大于所述预设初始数量,则将所述待发送信息中未被获取的所述待发送消息加载至待加载日志;
所述在时间轮的时间槽中设置与所述预设初始数量的所述待发送消息对应的待发送任务之后,所述方法还包括:
确定所述待加载日志中是否存在未设置待发送任务的待发送消息,若存在,则获取预设加载数量的待发送消息;
在所述时间轮的空闲的时间槽中设置与所述预设加载数量的待发送消息对应的待发送任务,并返回执行所述确定所述待加载日志中是否存在未设置待发送任务的待发送消息;其中,所述空闲的时间槽中未设置有未执行过的所述待发送任务。
7.根据权利要求5所述的方法,所述根据所述待发送消息的所述延迟发送时间的先后顺序获取预设初始数量的所述待发送消息之前,所述方法还包括:
将所述待发送消息加载至待加载日志;
所述根据所述待发送消息的所述延迟发送时间的先后顺序获取预设初始数量的所述待发送消息,包括:
从所述待加载日志中根据所述待发送消息的所述延迟发送时间的先后顺序获取预设初始数量的所述待发送消息;
所述在时间轮的时间槽中设置与所述预设初始数量的所述待发送消息对应的待发送任务之后,所述方法还包括:
确定所述待加载日志中是否存在未设置待发送任务的待发送消息,若存在,则获取预设加载数量的待发送消息;
在所述时间轮的空闲的时间槽中设置与所述预设加载数量的待发送消息对应的待发送任务,并返回执行所述确定所述待加载日志中是否存在未设置待发送任务的待发送消息;其中,所述空闲的时间槽中未设置有未执行过的所述待发送任务。
8.根据权利要求1所述的方法,所述若符合,则将所述待发送消息延迟发送至终端设备,包括:
若符合,则从接收到所述消息获取指令起的预设总延迟时间内,将所述待发送消息延迟发送至终端设备;其中,所述预设总延迟时间小于所述终端设备的超时时间。
9.一种消息发送装置,其特征在于,应用于服务器,所述装置包括:
待发送消息确定模块,用于基于消息获取指令,将所述消息获取指令所获取的消息作为待发送消息;
延迟处理判断模块,用于根据实时带宽值和所述待发送消息所需的带宽值,确定所述待发送消息是否符合延迟处理条件,若实时带宽值大于或等于带宽阈值,或者若实时带宽值小于带宽阈值,且实时带宽值与发送所述待发送消息所需的带宽值之和大于或等于带宽阈值,则确定所述待发送消息符合延迟处理条件;
延迟处理模块,用于将所述待发送消息延迟发送至终端设备。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行如权利要求1-8任一项所述的消息发送方法。
11.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-8任一项所述的消息发送方法。
CN202111466468.6A 2021-12-03 2021-12-03 消息发送方法、装置、电子设备和存储介质 Active CN114338553B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111466468.6A CN114338553B (zh) 2021-12-03 2021-12-03 消息发送方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111466468.6A CN114338553B (zh) 2021-12-03 2021-12-03 消息发送方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN114338553A CN114338553A (zh) 2022-04-12
CN114338553B true CN114338553B (zh) 2023-11-28

Family

ID=81048622

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111466468.6A Active CN114338553B (zh) 2021-12-03 2021-12-03 消息发送方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN114338553B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012072045A1 (zh) * 2010-12-03 2012-06-07 华为技术有限公司 一种cdn网络中的数据传输方法、网络节点及系统
CN106506261A (zh) * 2016-10-18 2017-03-15 上海市信息网络有限公司 智能在线监测前端局域网网络流量的方法
CN109257244A (zh) * 2017-07-14 2019-01-22 北京国双科技有限公司 用户行为数据的传输控制方法、装置及系统
CN109726014A (zh) * 2018-12-29 2019-05-07 武汉斗鱼网络科技有限公司 基于Netty的Rpc客户端在性能测试平台中的实现方法、系统、服务器及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285250B2 (en) * 2010-11-01 2012-10-09 Google Inc. Mobile device-based bandwidth throttling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012072045A1 (zh) * 2010-12-03 2012-06-07 华为技术有限公司 一种cdn网络中的数据传输方法、网络节点及系统
CN106506261A (zh) * 2016-10-18 2017-03-15 上海市信息网络有限公司 智能在线监测前端局域网网络流量的方法
CN109257244A (zh) * 2017-07-14 2019-01-22 北京国双科技有限公司 用户行为数据的传输控制方法、装置及系统
CN109726014A (zh) * 2018-12-29 2019-05-07 武汉斗鱼网络科技有限公司 基于Netty的Rpc客户端在性能测试平台中的实现方法、系统、服务器及存储介质

Also Published As

Publication number Publication date
CN114338553A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN103024081B (zh) 适用于有时效保证通讯系统的点对点通讯的终端调度方法
EP3073698A1 (en) Method for processing address resolution protocol message, forwarder and controller
CN103096271A (zh) 信息推送系统和信息推送方法
CN101567861B (zh) 异构应用系统之间的数据同步方法及应用系统
CN109547162B (zh) 基于两套单向边界的数据通信方法
CN103312528A (zh) 一种心跳消息发送方法及用户终端
CN110995617B (zh) 基于mqtt的数据报送方法、装置、计算机设备和存储介质
EP2913977A2 (en) Resource information acquisition method, system and device for internet of things terminal device
CN111541555A (zh) 群聊优化方法及相关产品
CN104410982A (zh) 一种无线异构网络中终端聚合与重构方法
CN109788251B (zh) 视频处理方法、装置及存储介质
CN106027599B (zh) 一种数据传输通道建立方法、系统和服务器
CN114338553B (zh) 消息发送方法、装置、电子设备和存储介质
CN109756464B (zh) 一种通信方法及服务器、客户端
CN112398845B (zh) 数据传输方法、数据传输装置、系统及电子设备
CN110708293B (zh) 多媒体业务的分流方法和装置
CN110417875B (zh) 一种云服务器之间的对接方法、系统、设备及存储介质
CN114884805B (zh) 数据传输方法、装置、终端及存储介质
CN108289165B (zh) 一种基于手机控制相机的实现方法、装置及终端设备
CN214544335U (zh) 智能楼宇中具有优化应答机制的物联网终端设备
CN101465783A (zh) 异构家庭网络设备之间的连接方法、装置及连接网桥
CN114281534A (zh) 长连接智能控制方法、系统、装置、电子设备及存储介质
US10616792B2 (en) Communications system and networking method of application driven network, and controller
CN116566955B (zh) 一种基于mqtt的数字语音通话方法、装置及应用
CN107094084B (zh) 一种数据共享方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant