CN110019197B - 一种数据写入的方法、装置、服务器及介质 - Google Patents

一种数据写入的方法、装置、服务器及介质 Download PDF

Info

Publication number
CN110019197B
CN110019197B CN201710896759.6A CN201710896759A CN110019197B CN 110019197 B CN110019197 B CN 110019197B CN 201710896759 A CN201710896759 A CN 201710896759A CN 110019197 B CN110019197 B CN 110019197B
Authority
CN
China
Prior art keywords
data
pipeline
playing
coroutine
writing
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
CN201710896759.6A
Other languages
English (en)
Other versions
CN110019197A (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.)
Xingli Yuanxin International Trade Beijing Co ltd
Original Assignee
Wuhan Douyu Network 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710896759.6A priority Critical patent/CN110019197B/zh
Publication of CN110019197A publication Critical patent/CN110019197A/zh
Application granted granted Critical
Publication of CN110019197B publication Critical patent/CN110019197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种数据写入的方法、装置、服务器及介质,所述方法应用于直播平台服务器,包括:持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。本发明解决了现有技术中的数据写入方式,存在的观看高峰期数据库压力大,数据写入拥堵的技术问题,实现了有效缓解数据库压力的技术效果。

Description

一种数据写入的方法、装置、服务器及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据写入的方法、装置、服务器及介质。
背景技术
由于直播的现场性和强互动性,越来越多的用户选择直播来作为娱乐、培训和交流的平台,随之也导致越来越多的主播在直播平台上开设直播房间。
为了能有效管理直播平台,直播平台提供方需要实时监控了解视频的播放情况,故需要收集直播平台上各视频的播放数据。当前的数据收集方法为,客户端用户开启播放一个视频,则会对应实时将该视频数据写入数据库。然而,在平台上视频播放量较大时,大量视频数据的实时写入会给数据库带来较大的压力,高峰期甚至出现数据拥堵。
可见,现有技术中的数据写入方式,存在观看高峰期数据库压力大,数据写入拥堵的技术问题。
发明内容
本申请实施例通过提供一种数据写入的方法、装置、服务器及介质,解决了现有技术中的数据写入方式,存在的观看高峰期数据库压力大,数据写入拥堵的技术问题。
第一方面,本申请提供了一种数据写入的方法,所述方法应用于直播平台服务器,包括:
持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
可选的,所述播放数据包括以下任意一种或多种:播放次数、播放视频的用户信息、播放视频的主播信息或播放视频的时间信息。
可选的,所述通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道,包括:如果所述统计队列所占用的存储空间达到预设空间,则通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道。
可选的,所述如果所述管道中的数据满足预设要求,包括:如果所述管道中的数据量大于预设数据量;或者,如果所述管道中导入数据的频率大于预设频率;或者,如果距上次所述管道将所述播放数据写入数据库的时长大于预设时长。
可选的,所述将所述管道中的所述播放数据按所述先后顺序依次写入数据库,包括:将所述管道中的所述播放数据按所述先后顺序依次写入数据库,其中,在所述写入数据库的过程中,主协程通过监听信号量来判断所述写入是否完成,并在所述主协程确定所述写入完成后,控制所述主协程、所述第一异步协程和所述第二异步协程退出。
可选的,在所述通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道之后,还包括:删除所述统计队列中存储的所述播放数据;在所述将所述管道中的所述播放数据按所述先后顺序依次写入数据库之后,还包括:删除所述管道中存储的所述播放数据。
第二方面,提供一种数据写入的装置,所述装置为直播平台服务器,包括:
监测模块,用于持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
导入模块,用于通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
写入模块,用于通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
可选的,所述装置还包括:监听模块,用于在所述写入数据库的过程中,主协程通过监听信号量来判断所述写入是否完成,并在所述主协程确定所述写入完成后,控制所述主协程、所述第一异步协程和所述第二异步协程退出。
第三方面,提供一种直播平台服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下方法:
持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
可选的,所述处理器执行所述程序时实现第一方面中描述的任一方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下方法:
持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
可选的,该程序被处理器执行时实现所述第一方面中的任一方法。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例提供的方法、装置、服务器及介质,在监测到用户播放视频时,先将播放数据按先后顺序存入统计队列中进行排序,以避免多个数据同时写入管道或数据库,再通过第一异步协程将所述播放数据批量放入固定容量的管道以作缓冲,在满足条件时,再通过第二异步协程将管道中的播放数据依序排队写入数据库,以使得数据库的数据写入基本保持为单协程链接的排队写入状态,有效避免多协程同时向所述数据库写入播放数据,有效缓解了数据库的压力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中数据写入的方法的流程图;
图2为本申请实施例中装置的结构示意图;
图3为本申请实施例中服务器的结构示意图;
图4为本申请实施例中计算机可读存储介质400的结构示意图。
具体实施方式
本申请实施例通过提供一种数据写入的方法、装置、服务器及介质,解决了现有技术中的数据写入方式,存在的观看高峰期数据库压力大,数据写入拥堵的技术问题,实现了有效缓解数据库压力的技术效果。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:
一种数据写入的方法,所述方法应用于直播平台服务器,包括:
持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
具体来讲,在监测到用户播放视频时,先将播放数据按先后顺序存入统计队列中进行排序,以避免多个数据同时写入管道或数据库,再通过第一异步协程将所述播放数据批量放入固定容量的管道以作缓冲,在满足条件时,再通过第二异步协程将管道中的播放数据依序写入数据库,以使得数据库的数据写入基本保持为单协程链接的连续写入状态,有效避免多协程同时向所述数据库写入播放数据,有效缓解了数据库的压力。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
如图1所示,本实施例提供了一种数据写入的方法,所述方法应用于直播平台服务器,包括:
步骤S101,持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
步骤S102,通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
步骤S103,通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
在本申请实施例中,所述直播平台服务器可以为计算机设备、云端或计算机设备组,在此不作限制。
下面,结合图1来详细介绍本实施例提供的数据写入的方法的具体实施步骤:`
首先,执行步骤S101,持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列。
具体来讲,直播平台服务器需要统计直播平台上的视频播放量和观看历史记录等信息,以便于服务器监测直播平台是否出现异常,和为直播平台提供一些实时的调节功能。现有技术中,是在每次有客户端用户播放视频时,实时的将播放相关的数据写入数据库,并将播放量进行实时更新,然而,当视频观看量较大的情况下,会有很多客户端在同一时段打开视频进行播放,就会出现多协程同时将数据写入数据库的情况,给数据库造成了较大的链接建立和数据传输压力。
本实施例同样会持续监测客户端用户播放视频的事件,以确保不遗留视频播放数据,但在监测到用户播放视频时,会获取所述视频的播放数据,并将所述播放数据按照获取的先后顺序,依序先暂存入统计队列中,以避免同时写入数据库带来的数据库压力。
在本申请实施例中,所述播放数据包括以下任意一种或多种:播放次数、播放视频的用户信息、播放视频的主播信息、用户行为数据或播放视频的时间信息,其中,所述用户行为数据可以是用户的弹幕、送礼、接麦或点赞等行为数据。
在具体实施过程中,可以设置不同的统计队列来暂存不同的播放数据,以保证播放数据能分类依序排列存放。举例来说,可以设置redis队列来用于统计播放量,即在redis队列中依序存放某个时间点的播放量数据;并设置nsq队列来用于存放历史观看数据,其中所述历史观看数据可以包括观看视频的用户信息、主播信息、用户行为数据或播放时长信息等,在此不作限制。
在具体实施过程中,当监测到用户播放视频时,可以实时将所述播放数据存入所述统计队列,较优的,也可以等所述视频播放达到一定时长后,再将所述播放数据存入所述统计队列,以保证统计的播放数据是稳定的,可靠的,参考意义更高的数据。
然后,执行步骤S102,通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道。
具体来讲,所述管道channel为固定容量的管道,通过设置管道作为所述数据库和所述统计队列的中间存储容器,是由于考虑到所述统计队列也可能会存在多个,而且统计队列存储空间有限,且由于需要实时的进行播放数据存入,如果存入数据过多容易出现数据丢失或出错,故设置管道channel来先依序存放所述统计队列中的数据,而不是将所述统计队列中的播放数据直接写入数据库,能够进一步减少所述数据库的压力,也增加了数据传输的稳定性,防止数据丢失或出错。
在具体实施过程中,所述第一异步协程将所述统计队列中的所述播放数据导入管道的触发因素可以有多种,下面列举两种为例:
第一种,定时触发。
即设置一定的时间周期,当满足该时间周期时,则周期性触发将所述统计队列中的所述播放数据导入管道中。
第二种,按存储的数据量来触发。
即所述通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道,包括:如果所述统计队列所占用的存储空间达到预设空间,则通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道。也就是说,在所述统计队列积累播放数据达到一定的存储空间大小后,就会触发将所述统计队列中的所述播放数据导入管道中。
当然,在具体实施过程中,还可以设置其他触发将数据导入管道的方式,在此不再一一列举,也不作限制。
接下来,执行步骤S103,通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
在本申请实施例中,可以根据不同的需要设置不同的所述预设要求来控制数据写入所述数据库,下面列举三种为例:
第一种,根据管道中的数据量判断是否写入数据库。
即如果所述管道中的数据量大于预设数据量,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
具体来讲,为了避免管道占用太大的存储空间,故所述管道是固定容量的,当所述第二异步协程监控到所述管道中存储的数据量大于预设数据量时,会触发将所述管道中的所述播放数据写入所述数据库,以避免管道数据溢出。
第二种,根据导入所述管道的数据导入频率判断是否写入数据库。
即如果所述管道中导入数据的频率大于预设频率,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
具体来讲,在直播平台上的视频开启量急增时,容易导致统计队列高频率的像所述管道中导入数据,此时,管道中的数据量上升急速,容易出现溢出,故设置在像管道中导入数据的频率大于预设频率时,会触发将所述管道中的所述播放数据写入所述数据库,以提前处理避免出现管道数据溢出。
第三种,根据向数据库写入数据的间隔时长来判断是否写入数据库。
即如果距上次所述管道将所述播放数据写入数据库的时长大于预设时长,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
在所述管道向所述数据库写入数据的间隔时长较长时,说明所述数据库此时的链接压力和数据传输压力较小,故选择此时将所述管道中的播放数据写入所述数据库,一方面不会对数据库造成太大压力,另一方面,及时排空所述管道,避免管道中数据溢出。
当然,在具体实施过程中,也可以采取其他设置所述预设要求的方法,在此不再一一列举,也不作限制。
具体来讲,采用第一异步协程和第二异步协程来分别处理所述统计队列中的数据和所述管道中的数据,能实现并行的数据写入和导出,能在所述管道积累数据的同时,并行的对所述管道中的数据进行消耗,提高了数据传输效率,且不易出错。
进一步,在本申请实施例中,为了避免在数据传输过程中,第一异步协程和第二异步协程出现错误退出,导致数据传输遗漏的情况,还设置在步骤S103中将所述管道中的所述播放数据按所述先后顺序依次写入数据库的过程中,主协程通过监听信号量来判断所述写入是否完成,并在所述主协程确定所述写入完成后,才能控制所述主协程、所述第一异步协程和所述第二异步协程退出。从而有效避免在数据未传输完成时的误退出,有效提高了数据传输的可靠性。
当然,在具体实施过程中,还可以设置在步骤S102中将所述统计队列中的将所述播放数据按所述先后顺序导入管道的过程中,所述主线程也监听信号量来判断所述导入是否完成,并在所述主协程确定所述导入完成后,才能控制所述主协程、所述第一异步协程和所述第二异步协程退出。
进一步,在所述通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道之后,还包括:删除所述统计队列中存储的所述播放数据;在所述将所述管道中的所述播放数据按所述先后顺序依次写入数据库之后,还包括:删除所述管道中存储的所述播放数据。以减少所述统计队列和所述管道占用的空间大小。
具体来讲,本申请实施例提供的方法、装置、服务器及介质,在监测到用户播放视频时,先将播放数据按先后顺序存入统计队列中进行排序,以避免多个数据同时写入管道或数据库,再通过第一异步协程将所述播放数据批量放入固定容量的管道以作缓冲,在满足条件时,再通过第二异步协程将管道中的播放数据依序排队写入数据库,以使得数据库的数据写入基本保持为单协程链接的排队写入状态,有效避免多协程同时向所述数据库写入播放数据,有效缓解了数据库的压力。
基于同一发明构思,本申请提供了实施例一对应的装置,详见实施例二。
实施例二
如图2所示,本实施例提供了一种数据写入的装置,所述装置为直播平台服务器,包括:
监测模块201,用于持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
导入模块202,用于通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
写入模块203,用于通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
在本申请实施例中,所述直播平台服务器可以为计算机设备、云端或计算机设备组,在此不作限制。
在本申请实施例中,所述装置还包括:
监听模块,用于在所述写入数据库的过程中,主协程通过监听信号量来判断所述写入是否完成,并在所述主协程确定所述写入完成后,控制所述主协程、所述第一异步协程和所述第二异步协程退出。
由于本实施例所介绍的装置为实施本申请实施例一中一种数据写入的方法所采用的装置,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的直播平台服务器,详见实施例三。
实施例三
本实施例提供一种直播平台服务器,如图3所示,包括存储器310、处理器320及存储在存储器320上并可在处理器320上运行的计算机程序311,处理器320执行计算机程序311时实现以下步骤:
持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
在具体实施过程中,处理器320执行计算机程序311时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的直播平台服务器为实施本申请实施例一中一种数据写入的方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的直播平台服务器的具体实施方式以及其各种变化形式,所以在此对于该服务器如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
如图4所示,本实施提供了一种计算机可读存储介质400,其上存储有计算机程序411,该计算机程序411被处理器执行时实现以下步骤:
持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库。
在具体实施过程中,该计算机程序411被处理器执行时,可以实现实施例一中任一实施方式。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种数据写入的方法,其特征在于,所述方法应用于直播平台服务器,包括:
持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库;
所述通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道,包括:
如果所述统计队列所占用的存储空间达到预设空间,则通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
所述如果所述管道中的数据满足预设要求,包括:
如果所述管道中的数据量大于预设数据量;或者,
如果所述管道中导入数据的频率大于预设频率;或者,
如果距上次所述管道将所述播放数据写入数据库的时长大于预设时长。
2.如权利要求1所述的方法,其特征在于,所述播放数据包括以下任意一种或多种:
播放次数、播放视频的用户信息、播放视频的主播信息或播放视频的时间信息。
3.如权利要求1所述的方法,其特征在于,所述将所述管道中的所述播放数据按所述先后顺序依次写入数据库,包括:
将所述管道中的所述播放数据按所述先后顺序依次写入数据库,其中,在所述写入数据库的过程中,主协程通过监听信号量来判断所述写入是否完成,并在所述主协程确定所述写入完成后,控制所述主协程、所述第一异步协程和所述第二异步协程退出。
4.如权利要求1所述的方法,其特征在于:
在所述通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道之后,还包括:删除所述统计队列中存储的所述播放数据;
在所述将所述管道中的所述播放数据按所述先后顺序依次写入数据库之后,还包括:删除所述管道中存储的所述播放数据。
5.一种数据写入的装置,其特征在于,所述装置为直播平台服务器,包括:
监测模块,用于持续监测客户端用户播放视频的事件,如果监测到用户播放视频,则获取所述视频的播放数据,并将所述播放数据存入统计队列,其中,所述统计队列中的数据按照存入的先后顺序排列;
导入模块,用于通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
所述通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道,包括:
如果所述统计队列所占用的存储空间达到预设空间,则通过第一异步协程将所述统计队列中的所述播放数据按所述先后顺序导入管道;
写入模块,用于通过第二异步协程监控所述管道中的数据,如果所述管道中的数据满足预设要求,则将所述管道中的所述播放数据按所述先后顺序依次写入数据库;
所述如果所述管道中的数据满足预设要求,包括:
如果所述管道中的数据量大于预设数据量;或者,
如果所述管道中导入数据的频率大于预设频率;或者,
如果距上次所述管道将所述播放数据写入数据库的时长大于预设时长。
6.如权利要求5所述的装置,其特征在于,还包括:
监听模块,用于在所述写入数据库的过程中,主协程通过监听信号量来判断所述写入是否完成,并在所述主协程确定所述写入完成后,控制所述主协程、所述第一异步协程和所述第二异步协程退出。
7.一种直播平台服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-4任一所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4任一所述的方法。
CN201710896759.6A 2017-09-28 2017-09-28 一种数据写入的方法、装置、服务器及介质 Active CN110019197B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710896759.6A CN110019197B (zh) 2017-09-28 2017-09-28 一种数据写入的方法、装置、服务器及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710896759.6A CN110019197B (zh) 2017-09-28 2017-09-28 一种数据写入的方法、装置、服务器及介质

Publications (2)

Publication Number Publication Date
CN110019197A CN110019197A (zh) 2019-07-16
CN110019197B true CN110019197B (zh) 2021-07-30

Family

ID=67186345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710896759.6A Active CN110019197B (zh) 2017-09-28 2017-09-28 一种数据写入的方法、装置、服务器及介质

Country Status (1)

Country Link
CN (1) CN110019197B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114071175B (zh) * 2021-11-16 2023-07-25 上海哔哩哔哩科技有限公司 消息的内存对齐方法和系统
CN116567341B (zh) * 2023-07-11 2023-10-10 奥视(天津)科技有限公司 一种基于golang的高并发信号处理平台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622426A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 数据库写入系统及方法
CN103488690A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 数据集成系统和数据集成方法
CN103886079A (zh) * 2014-03-26 2014-06-25 北京京东尚科信息技术有限公司 一种数据处理方法和系统
CN103945013A (zh) * 2013-01-17 2014-07-23 方正宽带网络服务股份有限公司 数据传输接口装置和数据传输方法
CN104866602A (zh) * 2015-06-01 2015-08-26 走遍世界(北京)信息技术有限公司 队列处理方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892199B2 (en) * 2001-06-29 2005-05-10 Trendium, Inc. Saving burst data by using semi-merge sorting module
CN103024014B (zh) * 2012-12-03 2015-08-19 北京京东世纪贸易有限公司 通过消息队列的海量数据分发处理的方法和系统
CN103942259B (zh) * 2014-03-21 2017-10-13 浙江大学 一种数据库同步中实现数据缓存的方法
CN104317906A (zh) * 2014-10-27 2015-01-28 合肥星服信息科技有限责任公司 Gps监控车台上报数据大规模入库的处理方法
CN104579789A (zh) * 2015-01-23 2015-04-29 广东能龙教育股份有限公司 一种基于消息队列的海量用户行为数据采集方法与系统
CN105872668A (zh) * 2016-03-31 2016-08-17 百度在线网络技术(北京)有限公司 音视频数据处理方法、装置以及车载终端
CN107147641A (zh) * 2017-05-10 2017-09-08 深圳市万游引力科技有限公司 一种信息处理方法、系统及计算机存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622426A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 数据库写入系统及方法
CN103945013A (zh) * 2013-01-17 2014-07-23 方正宽带网络服务股份有限公司 数据传输接口装置和数据传输方法
CN103488690A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 数据集成系统和数据集成方法
CN103886079A (zh) * 2014-03-26 2014-06-25 北京京东尚科信息技术有限公司 一种数据处理方法和系统
CN104866602A (zh) * 2015-06-01 2015-08-26 走遍世界(北京)信息技术有限公司 队列处理方法及装置

Also Published As

Publication number Publication date
CN110019197A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
CN104967884B (zh) 一种码流切换方法和装置
US9167007B2 (en) Stream complexity mapping
CN108174305B (zh) 直播聊天室的消息处理方法及装置
EP2300928B1 (en) Client side stream switching
CN110191348A (zh) 视频直播中互动消息的处理方法及装置
CN105553939B (zh) 一种流媒体卡顿的确定方法及装置
CN110019197B (zh) 一种数据写入的方法、装置、服务器及介质
CN107426629B (zh) 一种流媒体文件处理方法及直播系统
CN110121100A (zh) 媒体文件的下载方法、装置、终端和计算机可读存储介质
CN111083508A (zh) 消息处理方法、装置、电子设备及存储介质
CN102204272A (zh) 流媒体中播放时间点跳转后的处理方法及装置
CN113038191A (zh) 直播流的调度方法、装置、电子设备及可读存储介质
CN105611328A (zh) 基于hls流媒体的视频数据加速下载方法及装置
CN111185003B (zh) 实时云应用托管方法、装置、服务器和存储介质
CN107920108A (zh) 一种媒体资源的推送方法、客户端及服务器
CN105898625B (zh) 一种播放处理方法及终端设备
CN109587511A (zh) 多设备视频直播方法、设备、系统及存储介质
US10200433B2 (en) Client device, a method for receiving a streaming media data and a streaming media data transmission system
CN111010584A (zh) 直播数据处理方法、装置、服务器和存储介质
CN111582924A (zh) 一种云游戏的广告投放系统、方法及装置
CN110049352A (zh) 码率确定方法、装置、计算机设备和存储介质
CN107070811B (zh) 一种数据发送方法、终端及数据处理系统
CN109168009B (zh) 流量分配方法、装置、电子设备及计算机可读存储介质
CN105141644B (zh) 一种流媒体文件的下载方法及终端
CN113395549B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230913

Address after: No. 6-1 Shengli North Road, Chengguan Town, Guzhen County, Bengbu City, Anhui Province, 233000

Patentee after: Wang Wei

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230920

Address after: Room 1301, 13th Floor, Building 5, No. 15 Ronghua South Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 102600 (Yizhuang Cluster, High end Industrial Zone, Beijing Pilot Free Trade Zone)

Patentee after: Xingli Yuanxin International Trade (Beijing) Co.,Ltd.

Address before: No. 6-1 Shengli North Road, Chengguan Town, Guzhen County, Bengbu City, Anhui Province, 233000

Patentee before: Wang Wei