数据处理方法及装置制造方法

文档序号:6624288阅读:183来源:国知局
数据处理方法及装置制造方法
【专利摘要】本发明实施例公开了一种数据处理方法及装置。该数据处理方法包括:数据生产模块生产至少一个待处理数据;为至少一个待处理数据设置优先级;依照至少一个待处理数据的优先级,将至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列;按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至至少一个待处理数据均被提取出;依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列。可见,通过本方案可以保证高优先级的数据能够被尽快处理而并非堵塞在先进先出的队列里等待前面的数据被处理完。
【专利说明】数据处理方法及装置

【技术领域】
[0001]本发明涉及数据处理方法,特别涉及一种数据处理方法及装置。

【背景技术】
[0002]在系统软件开发的过程中,经常会碰到如下场景:某个模块负责产生数据,而另一个模块负责处理数据。其中,产生数据的模块通常被称为数据生产模块(或生产者);而处理数据的模块通常被称为数据处理模块(或消费者)。实际应用中,数据生产模块和数据处理模块的类型具体可以为业务系统、类、函数、线程、或进程等。
[0003]为了平衡数据生产模块的数据生产动作和数据处理模块的数据处理动作,最关键的是具有一个缓存队列处于数据生产者和数据处理者之间。具体的,数据生产模块将所生成的待处理数据写入缓存队列,而数据处理模块从缓存队列中提取数据来处理。其中,缓存队列可以为单堵塞队列或环形缓存队列,并且,缓存队列通常都是FIFO先进先出的队列形式。
[0004]其中,当处理数据有优先级需求时,通常是对缓冲区内的数据做基于优先级的重新排序,以使得高优先级的数据优先于低优先级的数据被处理。但是,在某些场景下,对优先级的要求并不严格,不需要强制高优先级的数据一定先于低优先级的数据被处理,只是要求高优先级的数据尽快的被处理,而不是堵塞在先进先出的队列里等待前面的数据被处理完O


【发明内容】

[0005]基于上述问题,本发明实施例公开了一种数据处理方法及装置,以保证高优先级的数据能够被尽快处理而并非堵塞在先进先出的队列里等待前面的数据被处理完。技术方案如下:
[0006]第一方面,本发明实施例提供了一种数据处理方法,应用于数据处理系统,其中,所述数据处理系统包括用于生产数据的数据生产模块和用于处理数据的数据处理模块;所述方法包括:
[0007]所述数据生产模块生产至少一个待处理数据;
[0008]为所述至少一个待处理数据设置优先级;
[0009]依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列;其中,所述一级缓存队列集合用于放置同一优先级的待处理数据;
[0010]按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出;
[0011]依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
[0012]可选的,所述一级缓存队列为单堵塞队列;
[0013]所述依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列,包括:
[0014]依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的尾部;
[0015]所述按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,包括:
[0016]按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的头部依次提取与相应一级缓存队列对应的预设数量的待处理数据。
[0017]可选的,所述一级缓存队列为环形缓存队列;
[0018]所述依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列,包括:
[0019]依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的头部;
[0020]所述按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,包括:
[0021]按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的尾部依次提取与相应一级缓存队列对应的预设数量的待处理数据。
[0022]可选的,所述二级缓存队列为单堵塞队列;
[0023]所述依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,包括:
[0024]依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的尾部。
[0025]可选的,所述二级缓存队列为环形缓存队列;
[0026]所述依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,包括:
[0027]依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的头部。
[0028]可选的,所述依次将每一次轮询所提取的待处理数据顺序写入预设的二级缓存队列,包括:
[0029]依次将每一次轮询所提取的待处理数据按照优先级从高到低的顺序写入预设的二级缓存队列。
[0030]第二方面,本发明实施例还提供了一种数据处理系统,所述数据处理系统包括用于生产数据的数据生产模块和用于消费数据的数据处理模块,所述数据生产模块包括:
[0031]生产单元,用于生产至少一个待处理数据;
[0032]优先级设置单元,用于为所述至少一个待处理数据设置优先级;
[0033]一级队列写入单元,用于依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列;其中,所述一级缓存队列集合用于放置同一优先级的待处理数据;
[0034]数据提取单元,用于按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出;
[0035]二级队列写入单元,用于依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
[0036]可选的,所述一级缓存队列为单堵塞队列;
[0037]所述一级队列写入单元,具体用于:
[0038]依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的尾部;
[0039]所述数据提取单元,具体用于:
[0040]按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的头部依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出。
[0041]可选的,所述一级缓存队列为环形缓存队列;
[0042]所述一级队列写入单元,具体用于:
[0043]依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的头部;
[0044]所述数据提取单元,具体用于:
[0045]按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的尾部依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出。
[0046]可选的,所述二级缓存队列为单堵塞队列;
[0047]所述二级队列写入单元,具体用于:
[0048]依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的尾部,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
[0049]可选的,所述二级缓存队列为环形缓存队列;
[0050]所述二级队列写入单元,具体用于:
[0051]依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的头部,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
[0052]可选的,所述二级队列写入单元,具体用于:
[0053]依次将每一次轮询所提取的待处理数据按照优先级从高到低的顺序写入预设的二级缓存队列,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
[0054]本发明实施例中,数据生产模块生产至少一个待处理数据;为至少一个待处理数据设置优先级;依照至少一个待处理数据的优先级,将至少一个待处理数据写入与优先级相对应的一级缓存队列集合中的一级缓存队列;按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至至少一个待处理数据均被提取出;依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从二级缓存队列中提取待处理数据进行处理。可见,本方案中,将每次从不同优先级对应的一级缓存队列中轮询到的待处理数据写入二级缓存队列,使得不同优先级的待处理数据均得到处理,因此,能够保证高优先级的数据能够被尽快处理而并非堵塞在先进先出的队列里等待前面的数据被处理完。

【专利附图】

【附图说明】
[0055]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0056]图1为本发明实施例所提供的一种数据处理方法的流程图;
[0057]图2为本发明实施例所提供的一种数据处理系统的结构示意图。

【具体实施方式】
[0058]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0059]本发明实施例提供了一种数据处理方法及装置,以保证高优先级的数据能够被尽快处理而并非堵塞在先进先出的队列里等待前面的数据被处理完。
[0060]下面首先对本发明实施例所提供的一种数据处理方法进行介绍。
[0061]需要说明的是,本发明实施例所提供的数据处理方法应用于数据处理系统,其中,该数据处理系统包括用于生产数据的数据生产模块和用于处理数据的数据处理模块;实际应用中,数据生产模块和数据处理模块的类型具体可以为业务系统、类、函数、线程、或进程坐寸ο
[0062]并且,预先设置有两级队列:用于放置同一优先级的待处理数据的一级缓存队列集合和用于放置不同优先级的待处理数据的二级缓存队列,其中,该一级缓存队列集合包括至少一个一级缓存队列。在实际应用中,一级缓存队列和二级缓存队列均可以为单堵塞队列或环形缓存队列,当然并不局限于此。
[0063]可以理解的是,一级缓存队列集合的数量可以与优先级的数量相同;并且,对于单堵塞队列而言,从尾部写入数据,从头部提取数据;而对于环形缓存队列而言,从头部写入数据,从尾部提取数据;并且,无论是单堵塞队列还是环形缓存队列均符合先进先出的原则。
[0064]如图1所示,一种数据处理方法,可以包括:
[0065]S101,该数据生产模块生产至少一个待处理数据;
[0066]S102,为至少一个待处理数据设置优先级;
[0067]其中,在数据生产模块生产至少一个待处理数据后,可以为该至少一个待处理数据设置优先级,以区分不同待处理数据的处理紧迫性。
[0068]S103,依照至少一个待处理数据的优先级,将至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列;
[0069]其中,在待处理数据被设置有优先级后,可以依照至少一个待处理数据的优先级,将至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列。
[0070]需要说明的是,一级缓存队列集合可以包括一个一级缓存队列,即一个优先级对应一个一级缓存队列;或者,一级缓存队列集合可以包括至少两个一级缓存队列,即一个优先级对应有至少两个一级缓存队列。对于一个优先级对应一个一级缓存队列的情况而言,直接将具有同一优先级的待处理数据写入到与该优先级相对应的一级缓存队列中即可。而对于一个优先级对应至少两个一级缓存队列的情况而言,可以将具有同一优先级的待处理数据按照预设写入规则依次写入与该优先级相对应的不同的一级缓存队列中,例如:以按照每次写入一个待处理数据的方式,将具有同一优先级的待处理数据轮询写入与该优先级相对应的不同的一级缓存队列中,或者,对具有同一优先级的待处理数据随机分成多个组后将每组内的待处理数据写入该优先级所对应的相应一级缓存队列,等等。
[0071]例如,待处理数据的优先级包括:pl、p2、p3…pn,优先级pi的待处理数据可以写入相应一级缓存队列集合中的一级缓存队列Q1,优先级P2的待处理数据可以写入相应一级缓存队列集合中的一级缓存队列Q2,以此类推,优先级pn的待处理数据写入相应一级缓存队列集合中的一级缓存队列Qn。如果某个优先级px的数据不存在,则不写入相应一级缓存队列集合中的一级缓存队列Qx。
[0072]S104,按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至至少一个待处理数据均被提取出;
[0073]在将至少一个待处理数据写入一级缓存队列集合中的一级缓存队列后,可以按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出,以此保证每次轮询所提取的待处理数据的优先级包括一级缓存队列中当前所有待处理数据具有的优先级。可以理解的是,通过队列轮询的方式,不断地取出各个一级缓存队列中的待处理数据,而由于每一次的轮询,都会取出一定数量的待处理数据,因此,如果高优先级的一级缓存队列里存在待处理数据,必定会在当前轮询中被取到。
[0074]具体的,对于一级缓存队列为单堵塞队列的情况而言,可以依照至少一个待处理数据的优先级,将至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的尾部;相应的,可以按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的头部依次提取与相应一级缓存队列对应的预设数量的待处理数据。
[0075]具体的,对于一级缓存队列为环形缓存队列而言,可以依照至少一个待处理数据的优先级,将至少一个待处理数据写入与优先级相对应的一级缓存队列集合中一级缓存队列的头部;相应的,按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的尾部依次提取与相应一级缓存队列对应的预设数量的待处理数据。
[0076]并且,需要说明的是,在保证一级缓存队列的低优先级的数据不被一次取尽的前提下:
[0077]每个一级缓存队列集合包括一个一级缓存队列时,预设数量可以为一个、两个或三个等;
[0078]或者,
[0079]每个一级缓存队列集合包括至少一个一级缓存队列时,预设数量可以为一个、两个或三个等;
[0080]或者,
[0081]每个一级缓存队列集合包括一个一级缓存队列时,预设数量可以为依据经验值法或动态计算法方法所确定出的数量。
[0082]其中,对于每个一级缓存队列集合包括至少一个一级缓存队列的情况可以例如:优先级Pl对应的一级缓存队列集合中的一级缓存队列Ql包含nl个队列,优先级p2对应的一级缓存队列集合中的一级缓存队列Q2包含n2个队列,优先级p3对应的一级缓存队列集合中的一级缓存队列Q2包含n3个队列,此时,可以每次提取nl个优先级pi的数据、n2个优先级P2的数据,n3个优先级p3的数据,以保证每一个优先级的数据都能被处理到,而不会被堵塞住。
[0083]并且,需要说明的是,经验值法即根据待处理数据的优先级及相应数据量大小预估所述预设数量;动态计算法即根据某一优先级数据要求的响应速度和实际的数据数量大小,动态的计算,以保证高优先级的数据在数据处理模块处理一定数量的数据中必然会被处理。
[0084]S105,依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从二级缓存队列中提取待处理数据进行处理。
[0085]在每一次轮询结束后,或者,在所有待处理数据被提取出后,为了保证高优先级的数据能够被尽快处理而并非堵塞在先进先出的队列里等待前面的数据被处理完,依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从该二级缓存队列中提取待处理数据进行处理。具体的,可以将每一次轮询所提取的待处理数据按照优先级从高到低的顺序写入预设的二级缓存队列;当然,也可以将每一次轮询所提取的待处理数据随机排列后依次写入预设的二级缓存队列中,这都是合理的。
[0086]具体的,对于二级缓存队列可以为单堵塞队列的情况而言,可以依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的尾部;相应的,数据处理模块可以从二级缓存队列的头部提取二级缓存队列中的待处理数据。
[0087]具体的,对于二级缓存队列为环形缓存队列的情况而言,可以依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的头部;相应的,数据处理模块可以从二级缓存队列的尾部提取二级缓存队列中的待处理数据。
[0088]本发明实施例中,数据生产模块生产至少一个待处理数据;为至少一个待处理数据设置优先级;依照至少一个待处理数据的优先级,将至少一个待处理数据写入与优先级相对应的一级缓存队列集合中的一级缓存队列;按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至至少一个待处理数据均被提取出;依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从二级缓存队列中提取待处理数据进行处理。可见,本方案中,将每次从不同优先级对应的一级缓存队列中轮询到的待处理数据写入二级缓存队列,使得不同优先级的待处理数据均得到处理,因此,能够保证高优先级的数据能够被尽快处理而并非堵塞在先进先出的队列里等待前面的数据被处理完。
[0089]下面结合具体的应用实例,对本发明实施例所提供的数据处理方法进行介绍。
[0090]假设待处理数据存在两级优先级:P1和P2,其中,P2高于Pl ;预先创建有属于单堵塞队列的一级缓存队列Ql和一级缓存队列Q2,其中,Ql用于放置具有优先级Pl的待处理数据,Q2用于放置具有优先级P2的待处理数据;并且,预先创建有属于单堵塞队列的二级缓存队列。
[0091](I)在某一时间段内数据生产模块生产低优先级Pl的待处理数据:Al, A2, A3, A4, A5, A6, A7, A8,高优先级 P2 的待处理数据:B1, B2, B3, B4。
[0092](2)数据生产模块首先依次将Al,A2, A3, A4, A5, A6, A7, A8写入Ql的尾部,并且,依次将BI,B2,B3, B4会被写入Q2的尾部:
[0093]其中,Ql:[Al, A2, A3, A4, A5, A6, A7, A8];
[0094]Q2: [BI, B2, B3, B4] ο
[0095](3)通过队列轮询的方式,数据生产模块从Ql和Q2的头部依次提取一个待处理数据,并把提取出的待处理数据重新排列后写入二级缓存队列的尾部。具体的:
[0096]第I次轮询,提取出[Al, BI],二级缓存队列:[Al, BI];
[0097]第2次轮询,提取出[A2,B2],二级缓存队列:[Al, BI, A2, B2];
[0098]第3 次轮询,提取出[A3,B3],二级缓存队列:[Al, BI, A2, B2, A3, B3];
[0099]第4 次轮询,提取出[A4,B4],二级缓存队列:[Al, BI, A2, B2, A3, B3, A4, B4];
[0100]第5 次轮询,提取出[A5],二级缓存队列:[A1,B1,A2,B2,A3,B3,A4,B4,A5];
[0101]第6 次轮询,提取出[A6],二级缓存队列:[Al, BI, A2, B2, A3, B3, A4, B4, A5, A6];
[0102]第7 次轮询,提取出[A7],二级缓存队列:[Al, BI, A2, B2, A3, B3, A4, B4, A5, A6, A7];
[0103]第8 次轮询,提取出[AS],二级缓存队列:[Al, BI, A2, B2, A3, B3, A4, B4, A5, A6, A7,A8]。
[0104]进一步的,数据处理模块可以在二级缓存队列的头部取出待处理数据,并按照Al,BI, A2, B2, A3, B3, A4, B4, A5, A6, A7, A8 的顺序依次处理数据。
[0105]可见,通过本方案能够保证高优先级的数据能够被尽快处理而并非堵塞在先进先出的队列里等待前面的数据被处理完。
[0106]相应于上述方法实施例,如图2所示,本发明实施例提供了一种数据处理系统,所述数据处理系统包括用于生产数据的数据生产模块210和用于处理数据的数据处理模块220,所述数据生产模块可以包括:
[0107]生产单元211,用于生产至少一个待处理数据;
[0108]优先级设置单元212,用于为所述至少一个待处理数据设置优先级;
[0109]一级队列写入单元213,用于依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列;其中,所述一级缓存队列集合用于放置同一优先级的待处理数据;
[0110]数据提取单元214,用于按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出;
[0111]二级队列写入单元215,用于依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块220从所述二级缓存队列中提取待处理数据进行处理。
[0112]本发明实施例中,数据生产模块生产至少一个待处理数据;为至少一个待处理数据设置优先级;依照至少一个待处理数据的优先级,将至少一个待处理数据写入与优先级相对应的一级缓存队列集合中的一级缓存队列;按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至至少一个待处理数据均被提取出;依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从二级缓存队列中提取待处理数据进行处理。可见,本方案中,将每次从不同优先级对应的一级缓存队列中轮询到的待处理数据写入二级缓存队列,使得不同优先级的待处理数据均得到处理,因此,能够保证高优先级的数据能够被尽快处理而并非堵塞在先进先出的队列里等待前面的数据被处理完。
[0113]具体的,所述一级缓存队列为单堵塞队列;
[0114]所述一级队列写入单元213,具体用于:
[0115]依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的尾部;
[0116]所述数据提取单元214,具体用于:
[0117]按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的头部依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出。
[0118]具体的,所述一级缓存队列为环形缓存队列;
[0119]所述一级队列写入单元213,具体用于:
[0120]依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的头部;
[0121]所述数据提取单元214,具体用于:
[0122]按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的尾部依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出。
[0123]具体的,所述二级缓存队列为单堵塞队列;
[0124]所述二级队列写入单元215,具体用于:
[0125]依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的尾部,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
[0126]具体的,所述二级缓存队列为环形缓存队列;
[0127]所述二级队列写入单元215,具体用于:
[0128]依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的头部,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
[0129]具体的,所述二级队列写入单元215,具体用于:
[0130]依次将每一次轮询所提取的待处理数据按照优先级从高到低的顺序写入预设的二级缓存队列,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
[0131]对于系统或装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0132]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0133]本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:R0M/RAM、磁碟、光盘等。
[0134]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【权利要求】
1.一种数据处理方法,其特征在于,应用于数据处理系统,其中,所述数据处理系统包括用于生产数据的数据生产模块和用于处理数据的数据处理模块;所述方法包括: 所述数据生产模块生产至少一个待处理数据; 为所述至少一个待处理数据设置优先级; 依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列;其中,所述一级缓存队列集合用于放置同一优先级的待处理数据; 按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出; 依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述一级缓存队列为单堵塞队列; 所述依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列,包括: 依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的尾部; 所述按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,包括: 按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的头部依次提取与相应一级缓存队列对应的预设数量的待处理数据。
3.根据权利要求1所述的方法,其特征在于,所述一级缓存队列为环形缓存队列; 所述依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列,包括: 依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的头部; 所述按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,包括: 按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的尾部依次提取与相应一级缓存队列对应的预设数量的待处理数据。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述二级缓存队列为单堵塞队列; 所述依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,包括: 依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的尾部。
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述二级缓存队列为环形缓存队列; 所述依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,包括: 依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的头部。
6.根据权利要求1-3任意一项所述的方法,其特征在于,所述依次将每一次轮询所提取的待处理数据顺序写入预设的二级缓存队列,包括: 依次将每一次轮询所提取的待处理数据按照优先级从高到低的顺序写入预设的二级缓存队列。
7.一种数据处理系统,其特征在于,所述数据处理系统包括用于生产数据的数据生产模块和用于消费数据的数据处理模块,所述数据生产模块包括: 生产单元,用于生产至少一个待处理数据; 优先级设置单元,用于为所述至少一个待处理数据设置优先级; 一级队列写入单元,用于依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列;其中,所述一级缓存队列集合用于放置同一优先级的待处理数据; 数据提取单元,用于按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出; 二级队列写入单元,用于依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
8.根据权利要求7所述的系统,其特征在于,所述一级缓存队列为单堵塞队列; 所述一级队列写入单元,具体用于: 依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的尾部; 所述数据提取单元,具体用于: 按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的头部依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出。
9.根据权利要求7所述的系统,其特征在于,所述一级缓存队列为环形缓存队列; 所述一级队列写入单元,具体用于: 依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的头部; 所述数据提取单元,具体用于: 按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的尾部依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出。
10.根据权利要7-9任意一项所述的系统,其特征在于,所述二级缓存队列为单堵塞队列; 所述二级队列写入单元,具体用于: 依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的尾部,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
11.根据权利要求7-9任意一项所述的系统,其特征在于,所述二级缓存队列为环形缓存队列; 所述二级队列写入单元,具体用于: 依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的头部,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
12.根据权利要求7-9任意一项所述的系统,其特征在于,所述二级队列写入单元,具体用于: 依次将每一次轮询所提取的待处理数据按照优先级从高到低的顺序写入预设的二级缓存队列,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
【文档编号】G06F13/18GK104199790SQ201410415527
【公开日】2014年12月10日 申请日期:2014年8月21日 优先权日:2014年8月21日
【发明者】潘昊, 洪炳峰 申请人:北京奇艺世纪科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1