CN114071175B - 消息的内存对齐方法和系统 - Google Patents
消息的内存对齐方法和系统 Download PDFInfo
- Publication number
- CN114071175B CN114071175B CN202111354795.2A CN202111354795A CN114071175B CN 114071175 B CN114071175 B CN 114071175B CN 202111354795 A CN202111354795 A CN 202111354795A CN 114071175 B CN114071175 B CN 114071175B
- Authority
- CN
- China
- Prior art keywords
- message
- playing
- ordered queue
- target
- new
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26241—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the time of distribution, e.g. the best time of the day for inserting an advertisement or airing a children program
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8352—Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种消息的内存对齐方法,用于服务器中,所述服务器的内存中配置有有序队列,所述有序队列用于根据时间先后顺序暂存各个播放消息;所述方法包括:获取新播放消息,所述新播放消息关联有目标主播的目标主播标识;判断所述有序队列中是否存在与所述目标主播标识关联的目标播放消息;及根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息。本申请公开的技术方案,可以有效避免大量的无效播放消息,避免直播系统内状态错误。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种消息的内存对齐方法、系统、计算机设备及计算机可读存储介质。
背景技术
随着互联网技术的快速发展,网络直播开始得到了广泛的应用。其中,网络直播一般涉及到:直播平台、主播终端和观众终端,其中主播终端可以经由直播平台向观众终端提供多媒体内容(如,视频内容),还可以经由直播平台接收观众终端提供的多媒体内容(如,评论内容),从而实现了边直播边互动的效果。由于网络直播有较强的现场性和互动性,因此受到越来越多的观众和主播的青睐。
在直播系统中,经常需要基于开播消息/关播消息触发一些任务,比如数据统计、转码,或调度等。但是,本发明人发现,由于网络环境的稳定性等因素,各个主播终端推送数据的起始阶段,容易在短时间内产生数个开播消息和关播消息。这种短时间内产生的大量开播消息/关播消息,易导致直播系统内部状态出错。
发明内容
有鉴于此,本申请实施例的目的是提供一种消息的内存对齐方法、系统、计算机设备及计算机可读存储介质,可以上述问题。
本申请实施例的一个方面提供了一种消息的内存对齐方法,用于服务器中,所述服务器的内存中配置有有序队列,所述有序队列用于根据时间先后顺序暂存各个播放消息;所述方法包括:
获取新播放消息,所述新播放消息关联有目标主播的目标主播标识;
判断所述有序队列中是否存在与所述目标主播标识关联的目标播放消息;
根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息。
可选的,所述根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息,包括:
若所述有序队列中不存在所述目标播放消息,则将所述新播放消息加入到所述有序队列。
可选的,所述新播放消息为新开播消息;
所述根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息,包括:
若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息。
可选的,所述新播放消息为新关播消息;
所述根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息,包括:
若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标关播消息,则丢弃所述新播放消息。
可选的,所述新播放消息为新关播消息;
所述根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息,包括:
若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标开播消息,则丢弃所述新播放消息,以及将所述目标播放消息从所述有序队列中删除。
可选的,所述新播放消息为新开播消息;
所述根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息,包括:
若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标关播消息,则丢弃所述新播放消息,以及将所述目标播放消息从所述有序队列中删除。
可选的,所述方法还包括:
从所述有序队列中取出部分播放消息,所述部分播放消息为在所述有序队列暂存超过预设时间长度的消息,所述预设时间长度随所述有序队列的队列长度动态调整。
可选的,所述方法还包括:对有序队列中的各个播放消息进行扫描以进行状态纠错。
本申请实施例的一个方面又提供了一种消息的内存对齐系统,用于服务器中,所述服务器的内存中配置有有序队列,所述有序队列用于根据时间先后顺序暂存各个播放消息;所述系统包括:
获取模块,用于获取新播放消息,所述新播放消息关联有目标主播的目标主播标识;
判断模块,用于判断所述有序队列中是否存在与所述目标主播标识关联的目标播放消息;及
消息处理模块,用于根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上所述的消息的内存对齐方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的消息的内存对齐方法的步骤。
本申请实施例提供的消息的内存对齐方法、系统、设备及计算机可读存储介质,具有以下技术优势:
每获取到一个新播放消息,都会从所述有序队列中查找是否有相关主播的播放消息。如果所述有序队列已存在相关主播的播放消息,则说明该新播放消息和该主播之前的播放消息是在短时间内相继产生的,即该新播放消息很可能是主播终端在刚开始推送数据时因网络不稳定而产生的无效消息。因此,将该新播放消息进行丢弃,实现了一次消息的内存对齐,避免了无效消息导致的直播系统内部状态错误。
附图说明
图1示意性示出了根据本申请实施例的消息的内存对齐方法的应用环境图;
图2示意性示出了根据本申请实施例一的消息的内存对齐方法的流程图;
图3示意性示出了有序队列的入队、出对示意图;
图4示意性示出了图2中步骤S204的子流程图;
图5示意性示出了图2中步骤S204的子流程图;
图6示意性示出了图2中步骤S204的子流程图;
图7示意性示出了图2中步骤S204的子流程图;
图8示意性示出了图2中步骤S204的子流程图;
图9示意性示出了根据本申请实施例一的消息的内存对齐方法的新增步骤流程图;
图10示意性示出了根据本申请实施例一的消息的内存对齐方法的新增步骤流程图;
图11示意性示出了根据本申请实施例二的消息的内存对齐系统的框图;
图12示意性示出了根据本申请实施例三的适于实现消息的内存对齐方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
网络直播一般涉及:直播平台、主播终端和观众终端,其中主播终端可以经由直播平台向观众终端提供多媒体内容(如,视频内容),还可以经由直播平台接收观众终端提供的多媒体内容(如,评论内容),从而实现了边直播边互动的效果。由于网络直播有较强的现场性和互动性,因此受到越来越多的观众和主播的青睐。
在直播系统中,经常需要基于开关播消息/关播消息触发一些任务,比如数据统计、转码(根据把主播推送的视频数据进行画面优化),或调度等。但是,本发明人发现,由于网络环境的稳定性等因素,各个主播终端推送数据的起始阶段,容易在短时间内产生数个开播消息和关播消息(这是因为主播终端在刚开始推送数据网络总是不稳定的)。这种短时间内产生的大量开播消息/关播消息,易导致直播系统内部状态出错。由于直播系统内部状态出错,它也不知道该以哪个消息是有效消息(以转码为例,短时间内大量的开/关播消息,会让转码任务崩溃)。
综上所述,直播系统目前存在如下问题:主播终端推送数据的起始阶段,由于网络通常是不稳定的,因此会产生大量的无效开/关播消息,导致直播系统内部状态出错。
本发明人发现了一种解决方式,即定时对全量数据扫描以不断的纠错。但是该解决方式会导致针对一些错误的状态纠正不够及时,且全量扫描会耗费大量服务器性能。
本申请将提供一种技术方案,其在不过度耗费前提下,解决直播系统内部状态出错问题。
首先,提供本申请涉及到的术语解释:
有序队列:按照一定顺序排列的数据。
其次,为了便于理解,提供了一个直播系统的系统架构图。如图1所示,直播系统包括主播终端(如,2A、2B、…)、观众终端(如,4A、4B、…)和服务器6。主播终端2A、2B、…可以通过服务器6将直播数据提供给观众终端4A、4B、…。
主播终端2A、2B、…,用于对主播侧的直播画面进行采集、编码等处理,且将经过采集、编码处理后的直播数据推送到服务器6。其中,所述直播数据可以包括音频数据或视频数据或二者结合。主播终端2A、2B、…可以是智能手机、平板电脑等电子设备。主播终端2A、2B、…可以包括主播APP,用于生成和推送直播数据,以及接收互动信息。
观众终端4A、4B、…,可以被配置为实时接收主播终端2A、2B、…的直播数据。观众终端4A、4B、…可以是任意类型的计算设备,诸如智能手机,平板设备,膝上型计算机,机顶盒,智能电视等。在具体使用时,观众终端4A、4B、…可以内置浏览器或专门程序,通过浏览器或专门程序接收所述直播数据以向用户输出内容。其中,所述内容可以包括视频,音频,评论,文本数据和/或类似物。
观众终端4A、4B、…,可以包括接口,该接口可以包括输入元件。例如,输入元件可以被配置为接收用户指令,所述用户指令可以使观众终端执行各类操作。
主播终端2A、2B、…和观众终端4A、4B、…分别可以通过一个或多个网络与该服务器6建立网络连接。作为示例,所述一个或多个网络可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。所述一个或多个网络可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。所述一个或多个网络可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物。
服务器6为主播终端2A、2B、…和观众终端4A、4B、…之间的交互媒介,用于推流、拉流、弹幕交互等,且可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。
基于上述示例性的系统架构,下面将具体介绍本申请实施例提供的消息的内存对齐方案。
实施例一
本实施例可以执行在服务器6中。所述服务器6的内存中配置有有序队列,所述有序队列用于根据时间先后顺序暂存各个播放消息。所述有序队列可以为先入先出队列。
图2示意性示出了根据本申请实施例一的消息的内存对齐方法的流程图。
如图2所示,该消息的内存对齐方法可以包括步骤S200~S204,其中:
步骤S200,获取新播放消息,所述新播放消息关联有目标主播的目标主播标识。
步骤S202,判断所述有序队列中是否存在与所述目标主播标识关联的目标播放消息。
步骤S204,根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息。
所述新播放消息为当前最新获取到的播放消息,该播放消息还未确定是否要加入到所述有序队列中。
所述目标播放消息,是在所述有序队列中的并具有特定特征的播放消息,如具有目标播放标识的播放消息。
在本实施例中,所述有序队列中是否存在具有目标播放标识的播放消息,决定了后续具有该目标播放标识的新播放消息是否可以被加入到所述有序队列中,意在防止具有同一个播放标识的两个或以上播放消息同时存在于所述有序队列中。
所述目标播放标识,用表示或区分主播,可以是主播编号、主播名字等各种标识。
在本实施例中,服务器6可以为各个主播分配直播频道(直播间),并收集各个直播间的播放消息,以监测各个直播间的是否处于直播状态,如:进入或退出直播状态。
所述各个直播间的播放消息,包括:开播消息、关播消息。其中:
开播消息:主播直播推送直播数据时与服务器6建立链接时产生的事件。
关播消息:主播直播推送直播数据时与服务器6断开链接时产生的事件。
基于各个直播间的播放消息(开播消息、关播消息),服务器6可以触发一些任务,例如数据统计、转码(根据把主播推送的视频数据进行画面优化),或调度等。
由于主播终端在刚开始推送数据时,网络通常不太稳定,从而会导致如下问题:各个主播终端推送数据的起始阶段,容易在短时间内产生数个开播消息和关播消息。这种短时间内产生的大量开播消息/关播消息,易导致直播系统内部状态出错。
为此,服务器6配有有序队列,通过该有序队列进行内存延迟对齐,来解决此类问题。
如图3所示,服务器6通过所述有序队列暂存各个主播终端的播放消息,并进行内存消息对齐。各个主播终端的播放消息可以依据消息产生时间的先后顺序,依次加入到所述有序队列中。产生时间越早的消息,越先被加入到所述有序队列中。
以主播终端2A为例:
主播终端2A在刚开始推送数据时,由于网络等影响,可能会产生多个开播消息/关播消息。很明显,该短时间内产生的多个开播消息/关播消息中存在大量无效消息。
因此,每得到一个与主播终端2A关联的新播放消息A’,服务器6都会以下如下操作:
(1)判断所述有序队列中,是否有与主播终端2A关联的目标播放消息A;
(2)由于所述有序队列仅能暂存短时间内的各播放消息,如果所述有序队列有与主播终端2A关联的播放消息,则说明该新播放消息A’和目标播放消息A是短时间内相继产生的。因此,可以将该新播放消息A’丢弃,而不添加到所述有序队列中。
一次播放消息的丢弃,可以称之为一次消息的内存对齐。
综上所述,本申请实施例提供的消息的内存对齐方法,包括如下优点:
(1)服务器6每获取到一个新播放消息,都会从所述有序队列中查找是否有相关主播的播放消息。如果所述有序队列已存在相关主播的播放消息,则说明该新播放消息和该主播之前的播放消息是在短时间内相继产生的,即该新播放消息很可能是主播终端在刚开始推送数据时因网络不稳定而产生的无效消息。因此,服务器6可以将该新播放消息进行丢弃,从而实现了一次消息的内存对齐。
基于消息的内存对齐,可以有效避免大量的无效播放消息,避免直播系统内状态错误。
(2)由于有效避免大量的无效播放消息,可以确保服务器的服务整体更加稳定。
(3)相对于默认每个消息都是有效的然后依赖定时任务修复数据和相关任务状态,本实施例通过丢弃无效播放消息可以以更少资源并更大限度的维持服务的稳定。
以下提供几个可选实施例。
作为可选的实施例,如图4所示,所述步骤S204可以包括:步骤S400,若所述有序队列中不存在所述目标播放消息,则将所述新播放消息加入到所述有序队列。
需要说明的是,所述新播放消息可以是按照时间先后顺序加入的。
若所述有序队列中不存在所述目标播放消息,则说明所述待添加消息可能不是因网络不稳而重复产生的无效消息。因此,可以将该新播放消息加入到所述有序队列中。该新播放消息被暂存在所述有序队列中,并可以结合相关主播的后续播放消息来共同验证:该新播放消息以后续播放消息是否属于重复产生的无效消息。若确定该新播放消息不属于无效消息,而是稳定消息(有效消息),可用于任务触发。
作为可选的实施例,所述新播放消息为新开播消息。如图5所示,所述步骤S204可以包括:步骤S500,若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息。在本实施例中,在所述新播放消息为新开播消息且所述有序队列中存在所述目标播放消息的情况下,直接对所述新播放消息丢弃,实现内存对齐。
作为可选的实施例,所述新播放消息为新关播消息。如图6所示,所述步骤S204可以包括:步骤S600,若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标关播消息,则丢弃所述新播放消息。在本实施例中,若所述新播放消息为新关播消息,且所述有序队列中存在所述目标关播消息,则说明在短时间内相继产生多个关播消息,因此,直接对所述新播放消息丢弃,实现内存对齐。
作为可选的实施例,所述新播放消息为新关播消息。如图7所示,所述步骤S204可以包括:步骤S700,若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标开播消息,则丢弃所述新播放消息,以及将所述目标播放消息从所述有序队列中删除。在本实施例中,若所述新播放消息为新关播消息,且所述有序队列中存在所述目标开播消息,则说明所述目标主播的网络不稳定从而导致在短时间内相继产生了开播消息、关播消息。因此,服务器6可以直接对所述新播放消息进行丢弃,并从所述有序队列中删除所述目标开播消息。由于既丢弃了所述新播放消息,又删除了所述目标开播消息,即实现了消息的抵消。该消息的抵消,不仅丢弃了未进入队列的新播放消息,还删除了位于队列内的目标开播消息,因此,可以进一步地减少无效的任务触发,提升服务的稳定。
作为可选的实施例,所述新播放消息为新开播消息。如图8所示,所述步骤S204可以包括:步骤S800,若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标关播消息,则丢弃所述新播放消息,以及将所述目标播放消息从所述有序队列中删除。在本实施例中,若所述新播放消息为新开播消息,且所述有序队列中存在所述目标关播消息,则说明所述目标主播的网络不稳定从而导致在短时间内相继产生了关播消息、开播消息。因此,服务器6可以直接对所述新播放消息进行丢弃,并从所述有序队列中删除所述目标关播消息。由于既丢弃了所述新播放消息,由删除了所述目标关播消息,即实现了消息的抵消。该消息的抵消,不仅丢弃了未进入队列的新播放消息,还删除了位于队列内的目标关播消息,因此,可以进一步地减少无效的任务触发,提升服务的稳定。
作为可选的实施例,如图9所示,所述方法还包括:
步骤S900,从所述有序队列中取出部分播放消息,所述部分播放消息为在所述有序队列暂存超过预设时间长度的消息,所述预设时间长度随所述有序队列的队列长度动态调整。
取出部分播放消息,即将该部分播放消息从队列中取出,可用于触发各种任务或基于该播放消息进行后续的处理。
服务器6可以启动一个线程,通过该线程从所述有序队列中取出部分播放消息。举例而言,若一个播放消息在所述有序队列中暂存超过X秒,则这个播放消息可以认定为是稳定消息。也就是说,所述有序队列可以确保同一个主播在X秒内只会产生一个开播消息或者关播消息,因为冗余的消息全部被丢弃(忽略)了,对服务的稳定性有很大的提高。X根据所述有序队列的队列长度动态调整,如果所述有序队列当前变长,X会自适应的变小,加快消息的处理速度。
作为可选的实施例,如图10所示,所述方法还包括:
步骤S1000,对有序队列中的各个播放消息进行扫描以进行状态纠错。通过有序队列延迟触发,并在触发任务前排除大量的无效消息,使服务整体更加稳定。在本实施例中,剩余状态不准的情况继续采用全量扫描纠错,进一步减少状态错误。
实施例二
图11示意性示出了根据本申请实施例二的消息的内存对齐系统的框图,该消息的内存对齐系统用于服务器中,所述服务器的内存中配置有有序队列,所述有序队列用于根据时间先后顺序暂存各个播放消息。该消息的内存对齐系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图11所示,该消息的内存对齐系统1100可以包括获取模块1110、判断模块1120及消息处理模块1130,其中:
获取模块1110,用于获取新播放消息,所述新播放消息关联有目标主播的目标主播标识;
判断模块1120,用于判断所述有序队列中是否存在与所述目标主播标识关联的目标播放消息;及
消息处理模块1130,用于根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息。
作为可选的实施例,所述消息处理模块1130,还用于:
若所述有序队列中不存在所述目标播放消息,则将所述新播放消息加入到所述有序队列。
作为可选的实施例,所述新播放消息为新开播消息;
所述消息处理模块1130,还用于:
若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息。
作为可选的实施例,所述新播放消息为新关播消息;
所述消息处理模块1130,还用于:
若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标关播消息,则丢弃所述新播放消息。
作为可选的实施例,所述新播放消息为新关播消息;
所述消息处理模块1130,还用于:
若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标开播消息,则丢弃所述新播放消息,以及将所述目标播放消息从所述有序队列中删除。
作为可选的实施例,所述新播放消息为新开播消息;
所述消息处理模块1130,还用于:
若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标关播消息,则丢弃所述新播放消息,以及将所述目标播放消息从所述有序队列中删除。
作为可选的实施例,所述系统还包括出队模块(未标识),用于:
从所述有序队列中取出部分播放消息,所述部分播放消息为在所述有序队列暂存超过预设时间长度的消息,所述预设时间长度随所述有序队列的队列长度动态调整。
作为可选的实施例,所述系统还包括扫描模块(未标识),用于:
对有序队列中的各个播放消息进行扫描以进行状态纠错。
实施例三
图12示意性示出了根据本申请实施例三的适于实现消息的内存对齐方法的计算机设备的硬件架构示意图。计算机设备10000可以作为服务器6或服务器6的组成部分。本实施例中,计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备,例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图12所示,计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如消息的内存对齐方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图12仅示出了具有部件10010-10030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的消息的内存对齐方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本申请。
实施例四
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的消息的内存对齐方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的消息的内存对齐方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种消息的内存对齐方法,其特征在于,用于服务器中,所述服务器的内存中配置有有序队列,所述有序队列用于根据时间先后顺序暂存短时间内的播放消息,短时间内的播放消息包括主播终端在刚开始推送数据时因网络不稳定而产生的多个播放消息,多个播放消息包括开播消息和关播消息;所述方法包括:
获取新播放消息,所述新播放消息关联有目标主播的目标主播标识;
判断所述有序队列中是否存在与所述目标主播标识关联的目标播放消息;
根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息;
其中,所述根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息,包括:
若所述有序队列中不存在所述目标播放消息,则将所述新播放消息加入到所述有序队列;
若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息。
2.根据权利要求1所述的消息的内存对齐方法,其特征在于,所述新播放消息为新开播消息;
所述若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息,包括:
若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息。
3.根据权利要求1所述的消息的内存对齐方法,其特征在于,所述新播放消息为新关播消息;
所述若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息,包括:
若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标关播消息,则丢弃所述新播放消息。
4.根据权利要求1所述的消息的内存对齐方法,其特征在于,所述新播放消息为新关播消息;
所述若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息,包括:
若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标开播消息,则丢弃所述新播放消息,以及将所述目标播放消息从所述有序队列中删除。
5.根据权利要求1所述的消息的内存对齐方法,其特征在于,所述新播放消息为新开播消息;
所述若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息,包括:
若所述有序队列中存在所述目标播放消息,且所述目标播放消息为目标关播消息,则丢弃所述新播放消息,以及将所述目标播放消息从所述有序队列中删除。
6.根据权利要求1至5任意一项所述的消息的内存对齐方法,其特征在于,所述方法还包括:
从所述有序队列中取出部分播放消息,所述部分播放消息为在所述有序队列暂存超过预设时间长度的消息,所述预设时间长度随所述有序队列的队列长度动态调整。
7.根据权利要求1至5任意一项所述的消息的内存对齐方法,其特征在于,所述方法还包括:
对有序队列中的各个播放消息进行扫描以进行状态纠错。
8.一种消息的内存对齐系统,其特征在于,用于服务器中,所述服务器的内存中配置有有序队列,所述有序队列用于根据时间先后顺序暂存短时间内的播放消息,短时间内的播放消息包括主播终端在刚开始推送数据时因网络不稳定而产生的多个播放消息,多个播放消息包括开播消息和关播消息;所述系统包括:
获取模块,用于获取新播放消息,所述新播放消息关联有目标主播的目标主播标识;
判断模块,用于判断所述有序队列中是否存在与所述目标主播标识关联的目标播放消息;及
消息处理模块,用于根据判断结果,将所述新播放消息加入到所述有序队列,或丢弃所述新播放消息;
其中,所述消息处理模块还用于:
若所述有序队列中不存在所述目标播放消息,则将所述新播放消息加入到所述有序队列;
若所述有序队列中存在所述目标播放消息,则丢弃所述新播放消息。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至7中任意一项所述的消息的内存对齐方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1至7中任意一项所述的消息的内存对齐方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111354795.2A CN114071175B (zh) | 2021-11-16 | 2021-11-16 | 消息的内存对齐方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111354795.2A CN114071175B (zh) | 2021-11-16 | 2021-11-16 | 消息的内存对齐方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114071175A CN114071175A (zh) | 2022-02-18 |
CN114071175B true CN114071175B (zh) | 2023-07-25 |
Family
ID=80273127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111354795.2A Active CN114071175B (zh) | 2021-11-16 | 2021-11-16 | 消息的内存对齐方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114071175B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915608A (zh) * | 2016-04-19 | 2016-08-31 | 上海卓易科技股份有限公司 | 一种设备间通信的上线下线通知系统及方法 |
CN109640130A (zh) * | 2017-10-09 | 2019-04-16 | 武汉斗鱼网络科技有限公司 | 一种开播消息推送方法、服务器及可读存储介质 |
CN110191348A (zh) * | 2018-02-23 | 2019-08-30 | 武汉斗鱼网络科技有限公司 | 视频直播中互动消息的处理方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019197B (zh) * | 2017-09-28 | 2021-07-30 | 武汉斗鱼网络科技有限公司 | 一种数据写入的方法、装置、服务器及介质 |
CN107809494B (zh) * | 2017-12-14 | 2021-01-26 | 深圳市斑点猫信息技术有限公司 | 消息延迟推送方法及其系统 |
CN110971939B (zh) * | 2018-09-30 | 2022-02-08 | 武汉斗鱼网络科技有限公司 | 一种违规图片的识别方法及相关装置 |
CN110856016A (zh) * | 2019-11-18 | 2020-02-28 | 百度在线网络技术(北京)有限公司 | 视频直播的监控方法、装置、电子设备及存储介质 |
CN111277847B (zh) * | 2020-01-21 | 2022-02-25 | 卓米私人有限公司 | 直播中聊天消息的展示方法、装置、服务器及系统 |
CN113259697B (zh) * | 2021-05-12 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 一种直播状态的通知方法、相关装置、设备及存储介质 |
CN113596501A (zh) * | 2021-07-30 | 2021-11-02 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-11-16 CN CN202111354795.2A patent/CN114071175B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915608A (zh) * | 2016-04-19 | 2016-08-31 | 上海卓易科技股份有限公司 | 一种设备间通信的上线下线通知系统及方法 |
CN109640130A (zh) * | 2017-10-09 | 2019-04-16 | 武汉斗鱼网络科技有限公司 | 一种开播消息推送方法、服务器及可读存储介质 |
CN110191348A (zh) * | 2018-02-23 | 2019-08-30 | 武汉斗鱼网络科技有限公司 | 视频直播中互动消息的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114071175A (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11356748B2 (en) | Method, apparatus and system for slicing live streaming | |
CN109089130B (zh) | 一种调整直播视频的时间戳的方法和装置 | |
CN108174226B (zh) | 直播视频的转码装置、方法及计算机可读存储介质 | |
CN111555963A (zh) | 消息推送方法、装置、电子设备及存储介质 | |
CN112437329B (zh) | 一种播放视频的方法、装置、设备、及可读存储介质 | |
CN112188225A (zh) | 用于直播回放的弹幕下发方法和直播视频弹幕回放方法 | |
CN106488273A (zh) | 一种传输直播视频的方法和装置 | |
US11863841B2 (en) | Video playing control method and system | |
CN108174267B (zh) | 直播中互动信息的发送装置、方法及计算机可读存储介质 | |
US11706498B2 (en) | Playback method, system, device and readable storage medium of live broadcast content | |
CN111031376B (zh) | 基于微信小程序的弹幕处理方法和系统 | |
CN110620699B (zh) | 消息到达率确定方法、装置、设备和计算机可读存储介质 | |
CN112312162B (zh) | 一种传输视频流的视频服务器 | |
CN110022335B (zh) | 数据包发送方法、装置、服务器及计算机可读存储介质 | |
CN111726641A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN114071175B (zh) | 消息的内存对齐方法和系统 | |
CN107124660B (zh) | 直播间广播信息的触发方法和装置 | |
CN113360783B (zh) | 用户在线列表更新方法、装置及计算机设备 | |
US20190227866A1 (en) | Information processing device and method | |
CN113965797A (zh) | 直播间切换方法和系统 | |
CN111224756B (zh) | 确定数据传输异常的方法、装置、存储介质及电子设备 | |
CN115278339A (zh) | 混播处理方法及系统 | |
CN110545237A (zh) | 一种即时通讯方法、装置、系统、计算机设备和存储介质 | |
CN110557453A (zh) | 一种数据分发方法、装置、设备和存储介质 | |
CN112511884A (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 |