待处理数据的获取方法、装置、服务器和存储介质与流程

文档序号:28384217发布日期:2022-01-07 23:33阅读:209来源:国知局
1.本公开涉及数据处理
技术领域
:,尤其涉及一种待处理数据的获取方法、装置、服务器和存储介质。
背景技术
::2.通常,为了保证视频内容的安全性,在用户发布视频之前需要对用户上传的每条视频进行处理,例如审核处理,然而,随着短视频业务的不断发展,用户上传的视频量也不断增多。3.相关技术中,通过单数据表方式存储视频数据,然而,随着视频量增大,会导致查询效率降低。为了支撑大数据量和高并发的需求,通过数据库分表方式存储视频数据。由于数据库中待处理视频数据往往会分派给多个处理员进行处理,其中每个处理员对应不同的待处理列表,每个待处理列表中具有一定数量的待处理视频数据,然而,当待处理列表众多时,可能存在一直从同一数据库分表中获取待处理数据的情况,从而造成从数据库分表中获取数据不均匀的问题。技术实现要素:4.本公开提供一种待处理数据的获取方法、装置、服务器和存储介质,以至少解决相关技术中从数据库分表中获取待处理数据不均匀的问题。本公开的技术方案如下:5.根据本公开实施例的第一方面,提供一种待处理数据的获取方法,包括:6.接收获取请求,所述获取请求包括待处理列表的类别;7.统计所述待处理列表的当前总待标记量和各分表之中属于所述类别的待处理数据的当前待标记量;其中,所述分表为存储各待处理列表之中待处理数据的数据库表;8.根据所述待处理列表的当前总待标记量和所述各分表之中属于所述类别的待处理数据的当前待标记量,确定所述各分表之中属于所述类别的待处理数据的读取数量;9.根据所述各分表之中属于所述类别的待处理数据的读取数量,从所述各分表中读取相应读取数量的待处理数据。10.在本公开一些实施例中,所述根据所述待处理列表的当前总待标记量和所述各分表之中属于所述类别的待处理数据的当前待标记量,确定所述各分表之中属于所述类别的待处理数据的读取数量,包括:11.根据所述待处理列表的当前总待标记量和所述各分表之中属于所述类别的待处理数据的当前待标记量,确定所述各分表之中属于所述类别的待处理数据占所述当前总待标记量的比重;12.根据所述各分表之中属于所述类别的待处理数据占所述当前总待标记量的比重,确定所述各分表之中属于所述类别的待处理数据的读取数量。13.在本公开一些实施例中,所述方法还包括:14.根据所述各待处理列表的类别和所述各分表的标识,定时从所述各分表中读取每种类别的待处理数据;15.将从所述各分表中读取到的每种类别的待处理数据,加载至相应类别的待处理列表的缓存单元中。16.在一种可能的实现方式中,所述根据所述各分表之中属于所述类别的待处理数据的读取数量,从所述各分表中读取相应读取数量的待处理数据,包括:17.根据所述各分表之中属于所述类别的待处理数据的读取数量,从与所述类别对应的待处理列表的目标缓存单元中,读取所述各分表相应读取数量的待处理数据。18.在一种可能的实现方式中,所述根据所述各分表之中属于所述类别的待处理数据的读取数量,从与所述类别对应的待处理列表的目标缓存单元中,读取所述各分表相应读取数量的待处理数据,包括:19.确定所述目标缓存单元之中已处理数据和被锁定数据;20.将所述目标缓存单元之中所述已处理数据和被锁定数据进行过滤;21.根据所述各分表之中属于所述类别的待处理数据的读取数量,从过滤掉所述已处理数据和被锁定数据的目标缓存单元之中读取所述各分表相应读取数量的待处理数据。22.根据本公开实施例的第二方面,提供一种待处理数据的获取装置,包括:23.接收模块,用于接收获取请求,所述获取请求包括待处理列表的类别;24.统计模块,用于统计所述待处理列表的当前总待标记量和各分表之中属于所述类别的待处理数据的当前待标记量;其中,所述分表为存储各待处理列表之中待处理数据的数据库表;25.确定模块,用于根据所述待处理列表的当前总待标记量和所述各分表之中属于所述类别的待处理数据的当前待标记量,确定所述各分表之中属于所述类别的待处理数据的读取数量;26.读取模块,用于根据所述各分表之中属于所述类别的待处理数据的读取数量,从所述各分表中读取相应读取数量的待处理数据。27.在本公开一些实施例中,所述确定模块具体用于:28.根据所述待处理列表的当前总待标记量和所述各分表之中属于所述类别的待处理数据的当前待标记量,确定所述各分表之中属于所述类别的待处理数据占所述当前总待标记量的比重;29.根据所述各分表之中属于所述类别的待处理数据占所述当前总待标记量的比重,确定所述各分表之中属于所述类别的待处理数据的读取数量。30.在本公开一些实施例中,所述装置还包括:31.缓存模块,用于根据所述各待处理列表的类别和所述各分表的标识,定时从所述各分表中读取每种类别的待处理数据,并将从所述各分表中读取到的每种类别的待处理数据,加载至相应类别的待处理列表的缓存单元中。32.在一种可能的实现方式中,所述读取模块具体用于:33.根据所述各分表之中属于所述类别的待处理数据的读取数量,从与所述类别对应的待处理列表的目标缓存单元中,读取所述各分表相应读取数量的待处理数据。34.在一种可能的实现方式中,所述读取模块具体用于:35.确定所述目标缓存单元之中已处理数据和被锁定数据;36.将所述目标缓存单元之中所述已处理数据和被锁定数据进行过滤;37.根据所述各分表之中属于所述类别的待处理数据的读取数量,从过滤掉所述已处理数据和被锁定数据的目标缓存单元之中读取所述各分表相应读取数量的待处理数据。38.根据本公开实施例的第三方面,提供一种服务器,包括:39.处理器;40.用于存储所述处理器可执行指令的存储器;41.其中,所述处理器被配置为所述指令,以实现第一方面实施例所述的待处理数据的获取方法。42.根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行第一方面实施例所述的待处理数据的获取方法。43.根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面实施例所述的方法的步骤。44.本公开的实施例提供的技术方案至少带来以下有益效果:45.接收获取请求,获取请求包括待处理列表的类别;统计待处理列表的当前总待标记量和各分表之中属于类别的待处理数据的当前待标记量;其中,分表为存储各待处理列表之中待处理数据的数据库表;根据待处理列表的当前总待标记量和各分表之中属于类别的待处理数据的当前待标记量,确定各分表之中属于类别的待处理数据的读取数量;根据各分表之中属于类别的待处理数据的读取数量,从各分表中读取各自读取数量的待处理数据。由此,本公开可以从各数据库分表中读取各自数量的待处理数据,解决相关技术中从数据库分表中获取待处理数据不均匀的问题,从而可以做到混合数据流实现均匀分派的功能,保证了每个数据库分表中的同一类别的待处理数据都可以被读取,避免不同的数据库分表中同一类别的数据被读取数量差距过大。46.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明47.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。48.图1是根据一示例性实施例示出的一种待处理数据的获取方法的流程图;49.图2是根据一示例性实施例示出的另一种待处理数据的获取方法的流程图;50.图3是根据一示例性实施例示出的又一种待处理数据的获取方法的流程图;51.图4是根据一示例性实施例示出的再一种待处理数据的获取方法的流程图;52.图5是根据一示例性实施例示出的一种待处理数据的获取装置的框图;53.图6是根据一示例性实施例示出的一种待处理数据的获取装置的框图;54.图7是根据一示例性实施例示出的一种服务器的框图。具体实施方式55.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。56.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。57.需要说明的是,为了方便理解本公开,首先对本公开的术语进行相应解释。58.在本公开实施例中,术语“单数据表”指单个数据表,例如,利用数据库存储视频数据时,视频数据存储在数据库中同一张数据表,该情况可称为利用单数据表方式存储视频数据。59.在本公开实施例中,术语“数据库分表方式存储视频数据”,可理解为采用数据库中多个数据表来存储视频数据。例如,大量视频数据可以分别存储在数据库中的不同数据表中,以实现采用分表方式存储视频数据的目的。60.通常,为了保证视频内容的安全性,在用户发布视频之前需要对用户上传的每条视频进行处理,然而,随着短视频业务的不断发展,用户上传的视频量也不断增多。61.相关技术中,通过单数据表方式存储视频数据,然而,随着视频量增大,会导致查询效率降低。为了支撑大数据量和高并发的需求,通过数据库分表方式存储视频数据。由于数据库中待处理视频数据往往会分派给多个处理员进行处理,其中每个处理员对应不同的待处理列表,每个待处理列表中具有一定数量的待处理视频数据,然而,当待处理列表众多时,可能存在一直从同一数据库分表中获取待处理数据的情况,从而造成从数据库分表中获取数据不均匀的问题。62.针对上述问题,本公开提出一种待处理数据的获取方法,通过从各数据库分表中读取各自数量的待处理数据,解决相关技术中从数据库分表中获取待处理数据不均匀的问题。63.图1是根据一示例性实施例示出的一种待处理数据的获取方法的流程图,需要说明的是,本技术实施例的待处理数据的获取方法可以应用于服务器,如图1所示,该待处理数据的获取方法可以包括以下步骤:64.在步骤s101中,接收获取请求,获取请求包括待处理列表的类别。65.可以理解,处理员可以通过处理操作终端来对各自待处理数据进行处理操作。其中每个处理操作终端的各自待处理数据是以待处理列表的形式分派给处理操作终端的。例如,处理员可以利用处理操作终端触发待处理数据的获取请求,并对待处理数据进行处理等操作,其中,该处理操作终端可以为个人电脑、移动终端等。在本公开实施例中,服务器可以同时接收一个或者多个处理操作终端发送的待处理数据的获取请求。66.其中,处理操作终端可以通过很很多种方式发送待处理数据的获取请求,比如采用远程过程调用(remoteprocedurecall,简称rpc)服务发送待处理数据的获取请求。另外,为了区别不同处理操作终端,可以通过不同的标识来区别,即该标识能够唯一标识一个处理操作终端。67.在本公开实施例中,在接收到处理操作终端发送的待处理数据的获取请求后,可以从该获取请求中提取出待处理列表的类别。其中,待处理列表的类别可理解为用于区别各待处理列表中待处理数据所属的类型,即该待处理列表中的数据代表同一类别的数据。例如,待处理数据都是存储在数据库分表中,由于待处理数据可能所属的类别不同,所以在数据库分表中通常是以类别type字段来进行区分,因此,可以将属于相同类别的待处理数据从数据库分表中读取出来,并以列表的形式分派给处理操作终端进行处理。例如,在将属于相同类别的待处理数据从数据库分表中读取出来之后,可以按照不同类别,将读取到的待处理数据放入相应类别的待处理列表中,这样,可以将该待处理列表分派给处理操作终端,以便处理操作终端对该列表中的数据进行处理。68.举例而言,以视频数据为例,假设数据库分表中存储有大量的待处理视频数据,这些待处理视频数据所属的类别有所不同,比如有的属于短视频,有的属于直播录制视频,或者有的属于影视视频,或者有的属于搞笑视频等,这些类别视频数据在数据库分表中均具有对应字段进行标识,在从数据库分表中读取待处理视频数据,并将这些待处理视频数据以列表形式分派给处理操作终端时,本技术会将属于同一类别的待处理视频数据放到一个待处理列表,即待处理列表中的待处理视频数据属于同一类别,以方便数据读取以及方便处理操作终端对视频数据的处理。69.在步骤s102中,统计待处理列表的当前总待标记量和各分表之中属于该类别的待处理数据的当前待标记量。70.其中,在本公开实施例中,该分表可理解为存储各待处理列表之中待处理数据的数据库表。71.其中,在本公开实施例中,该待处理列表的当前总待标记量可理解为属于同一类别下的等待处理的总数据量;当前待标记量可理解为当前等待处理标记的数量。由于待处理数据是分布存储在数据库各分表中,每个分表中存储的是当前等待处理的数据,这样,当处理操作终端发送获取请求时,本技术可以将待处理数据从各分表中读取出来,并将读取的待处理数据填入至待处理列表中分配给处理操作终端,因此,各分表之中属于该类别的待处理数据的当前待标记量可理解为:各分表中与待处理数据的类别相同的数据的数量。72.例如,以待处理列表a为例,假设待处理列表a中待处理数据的类别为类别a,数据库中有10个分表(如分表1、分表2、…、分表10),类别a的当前等待处理标记的总数量为1000,即待处理列表a当前总待标记量为1000,待处理列表a中待处理数据被分别存储到这10个分表中,每个分表中所包含的类别a的当前等待处理标记数据的数量可能会不同,比如,分表1中存储的类别a的当前等待处理标记数据的数量为100,分表2中存储的类别a的当前等待处理标记数据的数量为100,分表3存储的类别a的当前等待处理标记数据的数量为500,分表4存储的类别a的当前等待处理标记数据的数量为200,分表5存储的类别a的当前等待处理标记数据的数量为20,分表6存储的类别a的当前等待处理标记数据的数量为20,分表7存储的类别a的当前等待处理标记数据的数量为20,分表8存储的类别a的当前等待处理标记数据的数量为20,分表9存储的类别a的当前等待处理标记数据的数量为10,分表10存储的类别a的当前等待处理标记数据的数量为10。其中,所有分表中相同类别的待处理数据的数量总和应与该类别的待处理列表的当前总待标记量相同,比如上述10个分表中类别a的当前等待处理标记数据的数量总和与待处理列表a当前总待标记量相同,为100+100+500+200+20+20+20+20+10+10=1000。73.在一种实现方式中,由于数据库分表中每一行代表一条数据,且分表中以字段type来区分待处理数据的类别,所以可以通过统计各分表中具有相同type值的数据条数,来确定各分表之中属于类别的待处理数据的当前待标记量。例如,以上述数据库有10个分表为例,针对分表1而言,假设分表1中共有1000条数据,其中字段type值为a的数据条数为100,即可以通过统计分表1中字段type值为a的数据条数,来确定分表1中属于类别a的待处理数据的当前待标记量,比如该当前待标记量为100。74.在一种实现方式中,在统计得到各分表之中属于所述类别的待处理数据的当前待标记量之后,可将统计到的当前待标记量进行总和计算,得到的和值即为待处理列表的当前总待标记量。例如,继续以上述数据库有10个分表,待处理列表a中待处理数据的类别为类别a为例,在统计出这10个分表之中每个分表存储的类别a的当前等待处理标记数据的数量之后,可将这10个当前等待处理标记数据的数量进行求和,从而可以得到待处理列表a的当前总待标记量为1000。75.在步骤s103中,根据待处理列表的当前总待标记量和各分表之中属于类别的待处理数据的当前待标记量,确定各分表之中属于所述类别的待处理数据的读取数量。76.在一种实现方式中,根据待处理列表的当前总待标记量和各分表之中属于所述类别的待处理数据的当前待标记量,确定各分表之中属于所述类别的待处理数据占当前总待标记量的比重,并根据各分表之中属于类别的待处理数据占当前总待标记量的比重,确定各分表之中属于类别的待处理数据的读取数量。77.举例而言,继续以上述数据库有10个分表,待处理列表a中待处理数据的类别为类别a为例,统计待处理列表a当前总待标记量为1000,分表1中存储的类别a的当前等待处理标记数据的数量为100,分表2中存储的类别a的当前等待处理标记数据的数量为100,分表3存储的类别a的当前等待处理标记数据的数量为500,分表4存储的类别a的当前等待处理标记数据的数量为200,分表5存储的类别a的当前等待处理标记数据的数量为20,分表6存储的类别a的当前等待处理标记数据的数量为20,分表7存储的类别a的当前等待处理标记数据的数量为20,分表8存储的类别a的当前等待处理标记数据的数量为20,分表9存储的类别a的当前等待处理标记数据的数量为10,分表10存储的类别a的当前等待处理标记数据的数量为10。78.为了能够做到混合数据流实现均匀分派的功能,本技术实施例通过待处理列表a当前总待标记量和10个分表各自的属于类别a的待处理数据的当前待标记量,来计算出各分表中属于类别a的待处理数据占当前总待标记量的比重,根据该比重,确定各自分表之中属于类别a的待处理数据的读取数量。例如,计算出分表1属于类别a的待处理数据占当前总待标记量的比重为0.1,则确定分表1之中属于类别a的待处理数据的读取数量应为10;计算出分表2属于a的待处理数据占当前总待标记量的比重为0.1,则确定分表2之中属于类别a的待处理数据的读取数量应为10;计算出分表3属于类别a的待处理数据占当前总待标记量的比重为0.5,则确定分表3之中属于类别a的待处理数据的读取数量应为50;计算出分表4属于类别a的待处理数据占当前总待标记量的比重为0.2,则确定分表4之中属于类别a的待处理数据的读取数量应为20;计算出分表5属于类别a的待处理数据占当前总待标记量的比重为0.02,则确定分表5之中属于类别a的待处理数据的读取数量应为2;计算出分表6属于类别a的待处理数据占当前总待标记量的比重为0.02,则确定分表6之中属于类别a的待处理数据的读取数量应为2;计算出分表7属于类别a的待处理数据占当前总待标记量的比重为0.02,则确定分表7之中属于类别a的待处理数据的读取数量应为2;计算出分表8属于类别a的待处理数据占当前总待标记量的比重为0.02,则确定分表8之中属于类别a的待处理数据的读取数量应为2;计算出分表9属于类别a的待处理数据占当前总待标记量的比重为0.01,则确定分表9之中属于类别a的待处理数据的读取数量应为1;计算出分表10属于类别a的待处理数据占当前总待标记量的比重为0.01,则确定分表10之中属于类别a的待处理数据的读取数量应为1。由此可见,可以利用根据待处理列表的当前总待标记量和各分表之中属于类别的待处理数据的当前待标记量,确定各分表之中属于类别的待处理数据占当前总待标记量的比重,这样,可以利用比重分别从各自分表中读取相应数量的待处理数据,保证了每个数据库分表中的同一类别的待处理数据都可以被读取,避免不同的数据库分表中同一类别的数据被读取数量差距过大,从而可以解决相关技术中从数据库分表中获取待处理数据不均匀的问题,做到混合数据流实现均匀分派的功能。79.在步骤s104中,根据各分表之中属于类别的待处理数据的读取数量,从各分表中读取相应读取数量的待处理数据。80.可选地,在得到各分表之中属于类别的待处理数据的读取数量之后,可以从各分表中读取相应读取数量的待处理数据,并可以将这些待处理数据以列表的形式(如将这些待处理数据加载到待处理列表中)分配给处理操作终端,以便处理操作终端的使用者(如处理员)对该待处理列表中的待处理数据进行处理操作。81.举例而言,继续以上述步骤s103中的例子进行示例描述,可以根据10个分表之中属于类别a的待处理数据的读取数量,从该10个分表中读取相应读取数量的待处理数据。例如,假设分表1属于类别a的读取数量为10,分表2属于类别a的读取数量为10,分表3属于类别a的读取数量为50,分表4属于类别a的读取数量为20,分表5属于类别a的读取数量为2,分表6属于类别a的读取数量为2,分表7属于类别a的读取数量为2,分表8属于类别a的读取数量为2,分表9属于类别a的读取数量为1,分表10属于类别a的读取数量为1。可以从分表1中读取10条属于类别a的待处理数据,从分表2中读取10条属于类别a的待处理数据,从分表3中读取50条属于类别a的待处理数据,从分表4中读取20条属于类别a的待处理数据,从分表5中读取2条属于类别a的待处理数据,从分表6中读取2条属于类别a的待处理数据,从分表7中读取2条属于类别a的待处理数据,从分表8中读取2条属于类别a的待处理数据,从分表9中读取1条属于类别a的待处理数据,从分表10中读取1条属于类别a的待处理数据。82.根据本公开实施例的待处理数据的获取方法,可以接收获取请求,获取请求包括待处理列表的类别;统计待处理列表的当前总待标记量和各分表之中属于类别的待处理数据的当前待标记量;其中,分表为存储各待处理列表之中待处理数据的数据库表;根据待处理列表的当前总待标记量和各分表之中属于类别的待处理数据的当前待标记量,确定各分表之中属于类别的待处理数据的读取数量;根据各分表之中属于类别的待处理数据的读取数量,从各分表中读取相应读取数量的待处理数据。由此,本公开可以从各数据库分表中读取相应数量的待处理数据,解决相关技术中从数据库分表中获取待处理数据不均匀的问题,从而可以做到混合数据流实现均匀分派的功能,保证了每个数据库分表中的同一类别的待处理数据都可以被读取,避免不同的数据库分表中同一类别的数据被读取数量差距过大。83.为了极大减少对数据库分表的查询,提高响应速度,可选地,可以定时从数据库分表中同一类别的待处理数据缓存到各自缓存单元中,这样,可以从缓存单元中读取待处理数据。如图2和图3所示,该待处理数据的获取方法可以包括以下步骤:84.在步骤s201中,根据各待处理列表的类别和各分表的标识,定时从各分表中读取每种类别的待处理数据。85.在一种实现方式中,每个待处理列表具有各自的缓存单元,其中,该缓存单元可以以二维数组localcache《twotuple《type,table_suffix》,queue》来表示。其中,该localcache为表示缓存单元的字段,twotuple为表示二维数组的字段,type表示待处理数据(或待处理列表)的类别,table_suffix为用于表示分表的标识,二维数组中《type,table_suffix》表示类别type的待处理数据分别存储在哪些分表中,queue表示《type,table_suffix》的值。例如,假设type为a,类别a的待处理数据分别存储在3个分表(如分表1、分表2和分表3)中,则localcache《twotuple《type,table_suffix》,queue》中应对应有:《twotuple《typea,分表1》,queue1》(其中该queue1是分表1中类别为typea的待处理数据的值,即该queue可以理解为类似key-value中的value);《twotuple《typea,分表2》,queue2》(其中该queue2是分表2中类别为typea的待处理数据的值);《twotuple《typea,分表3》,queue3》(其中该queue3是分表3中类别为typea的待处理数据的值)。86.在本公开实施例中,可以根据待处理列表的类别和分表的标识,获取待处理列表的queue值,每个queue对应一张分表中type类别的待处理数据,可以定时回表查询待处理数据,以便将查询到的待处理数据加载到相应列表的待处理列表的缓存单元中。87.在步骤s202中,将从各分表中读取到的每种类别的待处理数据,加载至相应类别的待处理列表的缓存单元中。88.举例而言,以一个分表为分表1为例,该分表1中存储有多个类别的待处理数据,假设分表1中存储有类别a的待处理数据、类别b的待处理数据、类别c的待处理数据和类别d的待处理数据为例,可将从分表1中读取到的a类别的待处理数据加载到类别a的待处理列表a的缓存单元中;将从分表1中读取到的b类别的待处理数据加载到类别b的待处理列表b的缓存单元中;将从分表1中读取到的c类别的待处理数据加载到类别c的待处理列表c的缓存单元中;将从分表1中读取到的d类别的待处理数据加载到类别d的待处理列表d的缓存单元中。89.在步骤s203中,接收获取请求,获取请求包括待处理列表的类别。90.在本公开的实施例中,步骤s203可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。91.在步骤s204中,统计待处理列表的当前总待标记量和各分表之中属于所述类别的待处理数据的当前待标记量;其中,分表为存储各待处理列表之中待处理数据的数据库表。92.在本公开的实施例中,步骤s204可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。93.在步骤s205中,根据待处理列表的当前总待标记量和各分表之中属于所述类别的待处理数据的当前待标记量,确定各分表之中属于所述类别的待处理数据的读取数量。94.在本公开的实施例中,步骤s204可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。95.在步骤s206中,根据各分表之中属于类别的待处理数据的读取数量,从与类别对应的待处理列表的目标缓存单元中,读取各分表相应读取数量的待处理数据。96.举例而言,以两个分表分别为分表1和分表2为例,该分表1中存储有多个类别的待处理数据,假设分表1中存储有类别a的待处理数据、类别b的待处理数据、类别c的待处理数据和类别d的待处理数据,分表2中存储有类别a的待处理数据和类别b的待处理数据为例,可将从分表1中读取到的a类别的待处理数据、以及从分表2中读取到的a类别的待处理数据,加载到类别a的待处理列表a的缓存单元中,缓存单元中用二维数组表示为:localcache《twotuple《类别a,分表1》,queue1》,《twotuple《类别a,分表2》,queue2》,其中表示该缓存单元中包含有来自分表1中类别a的待处理数据queue1,以及来自分表2中类别a的待处理数据queue2;将从分表1中读取到的b类别的待处理数据、以及从分表2中读取到的b类别的待处理数据,加载到类别b的待处理列表b的缓存单元中,缓存单元中用二维数组表示为:localcache《twotuple《类别b,分表1》,queue3》,《twotuple《类别b,分表2》,queue4》,其中表示该缓存单元中包含有来自分表1中类别b的待处理数据queue3,以及来自分表2中类别b的待处理数据queue4;将从分表1中读取到的c类别的待处理数据加载到类别c的待处理列表c的缓存单元中,缓存单元中用二维数组表示为:localcache《twotuple《类别c,分表1》,queue5》,其中表示该缓存单元中包含有来自分表1中类别c的待处理数据queue5;将从分表1中读取到的d类别的待处理数据加载到类别d的待处理列表d的缓存单元中,缓存单元中用二维数组表示为:localcache《twotuple《类别d,分表1》,queue6》,其中表示该缓存单元中包含有来自分表1中类别d的待处理数据queue6。97.假设需要从上述分表1和分表2中读取属于类别a的待处理数据,其中分表1属于类别a的读取数量为10,分表2属于类别a的读取数量为10。可以从类别a的待处理列表a的缓存单元中读取10条属于类别a的待处理数据,从类别b的待处理列表b的缓存单元中98.分表2中读取10条属于类别a的待处理数据,从分表3中读取50条属于类别a的待处理数据,从分表4中读取20条属于类别a的待处理数据,从分表5中读取2条属于类别a的待处理数据,从分表6中读取2条属于类别a的待处理数据,从分表7中读取2条属于类别a的待处理数据,从分表8中读取2条属于类别a的待处理数据,从分表9中读取1条属于类别a的待处理数据,从分表10中读取1条属于类别a的待处理数据。99.可以理解,由于可以定时从各分表中读取每种类别的待处理数据,并将从各分表中读取到的每种类别的待处理数据,加载至相应类别的待处理列表的缓存单元中,所以在接收到待处理数据的获取请求之后,可以从与所请求之中的类别对应的待处理列表的目标缓存单元中,读取各分表相应读取数量的待处理数据。也就是说,可以从该待处理列表的目标缓存单元中读取相应读取的数量的待处理数据,这样,采用缓存技术可以极大减少对数据库分表的查询,提高响应速度。100.为了避免数据重复读取,在一种实现方式中,如图4所示,所述根据各分表之中属于类别的待处理数据的读取数量,从与类别对应的待处理列表的目标缓存单元中,读取各分表相应读取数量的待处理数据的实现方式可包括如下步骤:101.在步骤s401中,确定目标缓存单元之中已处理数据和被锁定数据。102.其中,在本公开实施例中,已处理数据可以理解为已经处理过的数据,其中可以利用某种标识来表示数据已被处理,比如,针对缓存单元中已经处理过的数据标记为1,比如某个数据被标记为1可理解为该数据已被处理。103.其中,在本公开实施例中,被锁定数据可理解为当前被占用的数据。例如,针对某个数据或某些数据可能被占用,比如已被分配给其他处理操作终端进行处理,针对这样的数据,可以将这样的数据标记为被锁定数据,这样可以避免不同处理操作终端对相同数据同时进行处理。104.在步骤s402中,将目标缓存单元之中已处理数据和被锁定数据进行过滤。105.在步骤s403中,根据各分表之中属于类别的待处理数据的读取数量,从过滤掉已处理数据和被锁定数据的目标缓存单元之中读取各分表相应读取数量的待处理数据。106.也就是说,可以从排除掉已处理数据和被锁定数据的目标缓存单元之中,读取各分表相应读取数量的待处理数据,这样可以避免不同处理操作终端对相同数据同时进行处理,同时还可以避免数据重复读取。107.需要说明的是,在本公开一些实施例中,处理操作终端可以采用远程过程调用rpc服务来获取待处理数据。例如,在分派某个待处理列表时,可以通过列表类别type哈希到某个rpc服务实例上。正常情况下,同一类别type的待处理数据获取请求始终在相同实例上,服务重启或宕机后可以切换到别的实例上。在一种实现方式中,每个rpc实例中可以存在一个或多个待处理列表的缓存单元localcache,每次读取待处理数据时,可以从各自缓存单元中找寻对应数据,其中可以通过依次遍历每个待处理列表的缓存单元,确保缓存单元中每个分表中的高延迟数据都会被读取到,可以降低业务处理的延迟性,保证每个分表的公平性。108.图5是根据一示例性实施例示出的一种待处理数据的获取装置框图。如图5所示,该获取装置可以包括:接收模块501、统计模块502、确定模块503和读取模块504。109.其中,接收模块501用于接收获取请求,获取请求包括待处理列表的类别;110.统计模块502用于统计待处理列表的当前总待标记量和各分表之中属于所述类别的待处理数据的当前待标记量;其中,分表为存储各待处理列表之中待处理数据的数据库表;111.确定模块503用于根据待处理列表的当前总待标记量和各分表之中属于所述类别的待处理数据的当前待标记量,确定各分表之中属于所述类别的待处理数据的读取数量;在一种实现方式中,确定模块503具体用于:根据待处理列表的当前总待标记量和各分表之中属于类别的待处理数据的当前待标记量,确定各分表之中属于所述类别的待处理数据占当前总待标记量的比重;根据各分表之中属于所述类别的待处理数据占当前总待标记量的比重,确定各分表之中属于所述类别的待处理数据的读取数量。112.读取模块504用于根据各分表之中属于类别的待处理数据的读取数量,从各分表中读取相应读取数量的待处理数据。113.在一种实现方式中,如图6所示,该获取装置还可以包括:缓存模块605。其中,缓存模块505用于根据各待处理列表的类别和各分表的标识,定时从各分表中读取每种类别的待处理数据,并将从各分表中读取到的每种类别的待处理数据,加载至相应类别的待处理列表的缓存单元中。114.其中,在本公开实施例中,读取模块604具体用于:根据各分表之中属于类别的待处理数据的读取数量,从与类别对应的待处理列表的目标缓存单元中,读取各分表相应读取数量的待处理数据。115.在本公开实施例中,读取模块604具体用于:确定目标缓存单元之中已处理数据和被锁定数据;将目标缓存单元之中已处理数据和被锁定数据进行过滤;根据各分表之中属于类别的待处理数据的读取数量,从过滤掉已处理数据和被锁定数据的目标缓存单元之中读取各分表相应读取数量的待处理数据。其中,图6中601-604和图5中501-504具有相同功能和结构。116.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。117.根据本公开实施例的待处理数据的获取装置,可以从各数据库分表中读取各自数量的待处理数据,解决相关技术中从数据库分表中获取待处理数据不均匀的问题,从而可以做到混合数据流实现均匀分派的功能,保证了每个数据库分表中的同一类别的待处理数据都可以被读取,避免不同的数据库分表中同一类别的数据被读取数量差距过大。118.为了实现上述实施例,本公开实施例还提出了一种服务器。119.其中,服务器包括:120.处理器;121.用于存储处理器可执行指令的存储器;122.其中,处理器被配置为执行指令,以实现如前所述的待处理数据的获取方法。123.作为一种示例,图7是根据一示例性实施例示出的一种用待处理数据的获取的服务器200的框图,如图7所示,上述服务器200,还可以包括:124.存储器210及处理器220,连接不同组件(包括存储器210和处理器220)的总线230,存储器210存储有计算机程序,当处理器220执行所述程序时实现本公开实施例所述的待处理数据的获取方法。125.总线230表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。126.服务器200典型地包括多种服务器可读介质。这些介质可以是任何能够被服务器200访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。127.存储器210还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)240和/或高速缓存存储器250。服务器200可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统260可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线230相连。存储器210可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。128.具有一组(至少一个)程序模块270的程序/实用工具280,可以存储在例如存储器210中,这样的程序模块270包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块270通常执行本公开所描述的实施例中的功能和/或方法。129.服务器200也可以与一个或多个外部设备290(例如键盘、指向设备、显示器291等)通信,还可与一个或者多个使得用户能与该服务器200交互的设备通信,和/或与使得该服务器200能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口292进行。并且,服务器200还可以通过网络适配器293与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图7所示,网络适配器293通过总线230与服务器200的其他模块通信。应当明白,尽管图中未示出,可以结合服务器200使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。130.处理器220通过运行存储在存储器210中的程序,从而执行各种功能应用以及数据处理。131.需要说明的是,本实施例的服务器的实施过程和技术原理参见前述对本公开实施例的待处理数据的获取方法的解释说明,此处不再赘述。132.本公开实施例的服务器,可以从各数据库分表中读取各自数量的待处理数据,解决相关技术中从数据库分表中获取待处理数据不均匀的问题,从而可以做到混合数据流实现均匀分派的功能,保证了每个数据库分表中的同一类别的待处理数据都可以被读取,避免不同的数据库分表中同一类别的数据被读取数量差距过大。133.为了实现上述实施例,本公开实施例还提出了一种存储介质。134.其中,当存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如前所述的待处理数据的获取方法。135.为了实现上述实施例,本公开还提供一种计算机程序产品,该计算机程序产品中的指令处理器执行时,使得服务器能够执行如前所述的待处理数据的获取方法。136.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。137.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1