一种多级列表页排序的方法、装置、服务器及介质与流程

文档序号:13446455阅读:232来源:国知局
一种多级列表页排序的方法、装置、服务器及介质与流程

本发明涉及计算机技术领域,尤其涉及一种多级列表页排序的方法、装置、服务器及介质。



背景技术:

由于直播的现场性和强互动性,越来越多的用户选择直播来作为娱乐、培训和交流的平台,随之也导致越来越多的主播在直播平台上开设直播房间。

为了使主播和观众用户拥有越来越完善的体验,并在提高主播和用户积极性的基础上体现公平性和实时性,往往需要短周期的刷新直播平台页面上的视频排序。

当前,视频排序是通过开设多个go程序,由每个go程序去计算一个分类的视频排序。然而,由于每个程序都会去与数据库建立连接并获取数据来进行计算,导致数据库的传输控制协议tcp链接的开销很大。

可见,现有技术中计算视频列表页的排序,存在tcp链接开销大的技术问题。



技术实现要素:

本申请实施例通过提供一种多级列表页排序的方法、装置、服务器及介质,解决了现有技术中计算视频列表页的排序,存在的tcp链接开销大的技术问题。

第一方面,本申请提供了一种多级列表页排序的方法,所述方法应用于服务器,包括:

主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类;

所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据;

所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;

所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

可选的,所述二级排序数据包括所述二级分类中的视频的排序顺序和所述二级分类中的视频的排序分值,其中,所述排序分值为所述多个子协程按照相同的预设排序规则计算出的分值。

可选的,所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据,包括:所述主协程根据多个所述二级排序数据中的所述排序分值,对所述一级分类中的视频进行排序计算,获得所述一级分类中的视频的一级排序数据。

可选的,所述方法还包括:当所述子协程进行并行排序计算时,控制所述子协程和所述主协程进行传输控制协议tcp操作的次数小于预设次数。

可选的,在所述计算出所述一级分类中的视频的一级排序数据之后,还包括:接收作用于预设插件组件的触发操作;基于所述触发操作,编辑所述二级排序数据或所述一级排序数据;其中,所述编辑为删除视频、增加视频、修改视频排序数据或对视频置顶。

可选的,在所述计算出所述一级分类中的视频的一级排序数据之后,还包括:显示视频的排序页面,其中,所述排序页面包括所述一级分类的排序页面和所述二级分类的排序页面。

第二方面,提供一种多级列表页排序的装置,所述装置为服务器,包括:

数据获取模块,用于主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类;

划分模块,用于所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据;

二级计算模块,用于所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;

一级计算模块,用于所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

可选的,所述二级排序数据包括所述二级分类中的视频的排序顺序和所述二级分类中的视频的排序分值,其中,所述排序分值为所述多个子协程按照相同的预设排序规则计算出的分值。

第三方面,提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类;

所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据;

所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;

所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类;

所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据;

所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;

所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

本申请实施例提供的方法、装置、服务器及介质,设置先由主协程与数据库通信获取视频数据和分类数据,再将视频数据按二级分类分给各子协程进行计算排序,子协程计算后将二级排序数据返回给主协程存储,并由主协程根据所述二级排序数据直接计算出一级排序数据,即不需要重新对所有视频进行计算来在一级分类里排序,有效减少了计算量,且只需要主协程在计算前与数据库建立连接并获取数据,不需要每个子协程均与数据库建立链接,有效减少了数据库tcp链接的开销。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例中多级列表页排序的方法的流程图;

图2为本申请实施例中装置的结构示意图;

图3为本申请实施例中服务器的结构示意图;

图4为本申请实施例中计算机可读存储介质400的结构示意图。

具体实施方式

本申请实施例通过提供一种多级列表页排序的方法、装置、服务器及介质,解决了现有技术中计算视频列表页的排序,存在的tcp链接开销大的技术问题,实现了减少计算量和减少数据库tcp链接开销的技术效果。

本申请实施例的技术方案为解决上述技术问题,总体思路如下:

一种多级列表页排序的方法,所述方法应用于服务器,包括:

主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类;

所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据;

所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;

所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

具体来讲,设置先由主协程与数据库通信获取视频数据和分类数据,再将视频数据按二级分类分给各子协程计算排序,子协程计算后将二级排序数据返回给主协程存储,并由主协程根据所述二级排序数据直接计算出一级排序数据,即不需要重新对所有视频进行计算来在一级分类里排序,有效减少了计算量,且只需要主协程在计算前与数据库建立连接并获取数据,不需要每个子协程均与数据库建立链接,有效减少了数据库tcp链接的开销。

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

实施例一

如图1所示,本实施例提供了一种多级列表页排序的方法,所述方法应用于服务器,包括:

步骤s101,主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类;

步骤s102,所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据;

步骤s103,所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;

步骤s104,所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

在本申请实施例中,所述服务器可以为计算机设备、云端或计算机设备组,在此不作限制。

下面,结合图1来详细介绍本实施例提供的多级列表页排序的方法的具体实施步骤:`

首先,执行步骤s101,主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类。

具体来讲,在直播平台的页面上,为了便于观众用户查找视频,会对视频进行分类,在视频数量巨大时,会采取多级分类来便于观众用户细化查询,正如本实施例中的一级分类和二级分类,其中,所述二级分类是其对应的一级分类中的子分类、举例来说,一级分类有游戏竞技、户外趣玩、美食分享等,其中所述游戏竞技的一级分类下可以有游戏赛事、单机游戏、英雄联盟等二级分类。

在本申请实施例中,所述协程也可以称为线程,所述主协程和所述子协程都是一个go程序里的不同级别的协程。所述主协程先与数据库建立链接,并获取视频数据及分类数据,其中,所述视频数据可以包括视频的名称、视频对应的主播信息、视频内容描述信息、视频的点击数、视频的上线时长、视频收到的礼物数据、视频的当前在线观众数等,以便于后续子协程根据所述视频数据来计算排序。其中,所述分类数据包括:用于表征每个视频所属的分类的数据、一级分类的划分列表和每个一级分类下的二级分类的划分列表。

在本申请实施例中,所述主协程可以周期性的从所述数据库获取视频数据和分类数据,其中,具体的获取周期可以是一分钟、10分钟或一小时,在此不作限制;当然,所述主协程也可以触发性的从所述数据库获取视频数据和分类数据,触发事件可以是有新视频上线或有新视频下线;当然,还可以结合周期性和触发性,即采用周期性获取视频数据和分类数据,但又触发事件发生时也会补充获取视频数据和分类数据。

然后,执行步骤s102,所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据。

在本申请实施例中,所述主协程会将所述视频数据按照二级分类进行划分,再将一个二级分类下的视频数据对应发送给一个子协程进行排序计算,多个子协程分别并行计算多个二级分类,以提高计算速度。例如,假设有游戏赛事、单机游戏、英雄联盟等二级分类,则将游戏赛事类的视频数据给1号子协程进行排序计算,将单机游戏类的视频数据给2号子协程进行排序计算,将英雄联盟类的视频数据给3号子协程进行排序计算,这三个子协程并行进行计算。

具体来讲,根据所述分类数据来对所述视频数据进行分类,可以是根据所述分类数据中每个视频所属的分类的数据,将同属一个二级分类的视频数据划分到一起;也可以是按照二级分类的划分列表,再根据视频内容描述信息采用大数据计算方法对视频数据进行分类,在此不作限制。

在本申请实施例中,所述二级排序数据包括所述二级分类中的视频的排序顺序和所述二级分类中的视频的排序分值,其中,所述排序分值为所述多个子协程按照相同的预设排序规则计算出的分值。举例来说,假设在游戏赛事这个二级分类中,有a、b、c、d、e、f、g这几个视频数据,则计算出的所述二级排序数据包括c、e、d、g、a、b、f这个排列顺序,还包括c(70)、e(68)、d(50)、g(46)、a(44)、b(37)、f(11)这些分值。

其中,所述按照相同的预设排序规则计算出的分值,可以是按照当前观看观众数计算的分值,也可以是按照主播好评度计算的分值,还可以是按照历史累积收礼物价值计算的分值,在此不作限制,也不再一一列举,但需要保证每个子协程计算所述分值的方法是统一的,以便于后续能便利的进行一级排序数据的计算。

然后,执行步骤s103和步骤s104,,所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

具体来讲,在所述子协程按照预设排序规则计算出对应的二级分类下视频的二级排序数据后,将所述二级排序数据返回给所述主协程,所述主协程能获取所有二级分类下视频的二级排序数据。

然后,所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

在本申请实施例中,是根据该一级分类下的二级分类对应的二级排序数据,来计算该一级分类下视频的一级排序数据。具体来讲,所述主协程可以根据多个所述二级排序数据中的所述排序分值,对所述一级分类中的视频进行排序计算,获得所述一级分类中的视频的一级排序数据。

举例来说,假设游戏竞技的一级分类下有游戏赛事和单机游戏这2个二级分类。其中,1号子协程计算出游戏赛事对应的二级排序数据为c(70)、e(68)、d(50)、g(46)、a(44)、b(37)、f(11);2号子协程计算出单机游戏对应的二级排序数据为k(61)、h(55)、i(55)、l(40)、j(35),则主协程获取所有二级排序数据后,根据所述分值,快速计算出一级分类游戏竞技中的一级排序数据为c(70)、e(68)、k(61)、h(55)、i(55)、d(50)、g(46)、a(44)、l(40)、j(35)、b(37)、f(11)。

即一级分类的一级排序数据只需要对获得的二级排序数据进行简单的整理计算就可以得到,不需要再按照所述预设排序规则去计算,极大的减少了计算量。

在本申请实施例中,当存在2级以上的分类时,只需要按最低级分类分到各个子协程进行排序计算,再将最低级分类的排序数据存储至主协程,由主协程采用前述的方法计算出较高级分类和最高级分类的排序数据。

进一步,为了减少数据库tcp链接的开销,设置当所述子协程进行并行排序计算时,控制所述子协程和所述主携程进行传输控制协议tcp操作的次数小于预设次数。即将tcp操作主要放置在排序计算量小的前期和后期,在中期各子协程进行二级排序数据计算时,要尽量减少tcp操作,以保证计算速度。

进一步,为了便于工作人员能及时发现排序页的问题,在所述计算出所述一级分类中的视频的一级排序数据之后,还包括:显示视频的排序页面,其中,所述排序页面包括所述一级分类的排序页面和所述二级分类的排序页面。具体来讲,即提供直播平台界面上线前的预览环境,以便于工作人员在页面正式上线前能进行预览,以及时发现排序页的问题。

进一步,为了在发现问题后,能对排序作改动,需要设置修改、置顶和删除等功能,现有技术是将所有功能封装在一起,需要使用时,必须发出预设指令,然后设备按照预设指令查找提供哪个功能。为了避免功能间相互影响和减少开发难度,本实施例还可以设置接收作用于预设插件组件的触发操作;基于所述触发操作,编辑所述二级排序数据或所述一级排序数据;其中,所述编辑为删除视频、增加视频、修改视频排序数据或对视频置顶。具体来讲,即将每个功能单独作成插件,需要触发哪个插件就运行哪个插件即可,例如将视频列表里面的插队、置顶等功能单独做成独立的插件,给外部调用即可,不用关心内部逻辑,不需要确定解耦哪个功能。

具体来讲,设置先由主协程与数据库通信获取视频数据和分类数据,再将视频数据按二级分类分给各子协程计算排序,子协程计算后将二级排序数据返回给主协程存储,并由主协程根据所述二级排序数据直接计算出一级排序数据,即不需要重新对所有视频进行计算来在一级分类里排序,有效减少了计算量,且只需要主协程在计算前与数据库建立连接并获取数据,不需要每个子协程均与数据库建立链接,有效减少了数据库tcp链接的开销。

基于同一发明构思,本申请提供了实施例一对应的装置,详见实施例二。

实施例二

如图2所示,本实施例提供一种多级列表页排序的装置,所述装置为服务器,包括:

数据获取模块201,用于主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类;

划分模块202,用于所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据;

二级计算模块203,用于所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;

一级计算模块204,用于所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

在本申请实施例中,所述服务器可以为计算机设备、云端或计算机设备组,在此不作限制。

在本申请实施例中,所述二级排序数据包括所述二级分类中的视频的排序顺序和所述二级分类中的视频的排序分值,其中,所述排序分值为所述多个子协程按照相同的预设排序规则计算出的分值。

由于本实施例所介绍的装置为实施本申请实施例一中一种多级列表页排序的方法所采用的装置,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的服务器,详见实施例三。

实施例三

本实施例提供一种服务器,如图3所示,包括存储器310、处理器320及存储在存储器320上并可在处理器320上运行的计算机程序311,处理器320执行计算机程序311时实现以下步骤:

主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类;

所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据;

所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;

所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

在具体实施过程中,处理器320执行计算机程序311时,可以实现实施例一中任一实施方式。

由于本实施例所介绍的服务器为实施本申请实施例一中一种多级列表页排序的方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的服务器的具体实施方式以及其各种变化形式,所以在此对于该服务器如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。

实施例四

如图4所示,本实施提供了一种计算机可读存储介质400,其上存储有计算机程序411,该计算机程序411被处理器执行时实现以下步骤:

主协程从数据库获取视频数据和分类数据,所述分类数据包括一级分类的数据和二级分类的数据,所述二级分类为所述一级分类的子类;

所述主协程根据所述分类数据,将所述视频数据按照所述二级分类分给多个子协程进行并行排序计算,以获得每个所述二级分类中的视频的二级排序数据,其中,所述多个子协程中的每个子协程对应计算一个二级分类的视频数据;

所述多个子协程将计算出的多个所述二级排序数据保存至所述主协程;

所述主协程根据多个所述二级排序数据,计算出所述一级分类中的视频的一级排序数据。

在具体实施过程中,该计算机程序411被处理器执行时,可以实现实施例一中任一实施方式。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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