[发明专利]数据处理方法及装置有效
申请号: | 201410415527.0 | 申请日: | 2014-08-21 |
公开(公告)号: | CN104199790B | 公开(公告)日: | 2017-10-24 |
发明(设计)人: | 潘昊;洪炳峰 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F13/18 | 分类号: | G06F13/18;G06F9/44 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙)11413 | 代理人: | 马敬,项京 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 | ||
技术领域
本发明涉及数据处理方法,特别涉及一种数据处理方法及装置。
背景技术
在系统软件开发的过程中,经常会碰到如下场景:某个模块负责产生数据,而另一个模块负责处理数据。其中,产生数据的模块通常被称为数据生产模块(或生产者);而处理数据的模块通常被称为数据处理模块(或消费者)。实际应用中,数据生产模块和数据处理模块的类型具体可以为业务系统、类、函数、线程、或进程等。
为了平衡数据生产模块的数据生产动作和数据处理模块的数据处理动作,最关键的是具有一个缓存队列处于数据生产者和数据处理者之间。具体的,数据生产模块将所生成的待处理数据写入缓存队列,而数据处理模块从缓存队列中提取数据来处理。其中,缓存队列可以为单堵塞队列或环形缓存队列,并且,缓存队列通常都是FIFO先进先出的队列形式。
其中,当处理数据有优先级需求时,通常是对缓冲区内的数据做基于优先级的重新排序,以使得高优先级的数据优先于低优先级的数据被处理。但是,在某些场景下,对优先级的要求并不严格,不需要强制高优先级的数据一定先于低优先级的数据被处理,只是要求高优先级的数据尽快的被处理,而不是堵塞在先进先出的队列里等待前面的数据被处理完。
发明内容
基于上述问题,本发明实施例公开了一种数据处理方法及装置,以保证高优先级的数据能够被尽快处理而并非堵塞在先进先出的队列里等待前面的数据被处理完。技术方案如下:
第一方面,本发明实施例提供了一种数据处理方法,应用于数据处理系统,其中,所述数据处理系统包括用于生产数据的数据生产模块和用于处理数据的数据处理模块;所述方法包括:
所述数据生产模块生产至少一个待处理数据;
为所述至少一个待处理数据设置优先级;
依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列;其中,所述一级缓存队列集合用于放置同一优先级的待处理数据;
按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,直至所述至少一个待处理数据均被提取出;
依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,以使得数据处理模块从所述二级缓存队列中提取待处理数据进行处理。
可选的,所述一级缓存队列为单堵塞队列;
所述依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列,包括:
依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的尾部;
所述按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,包括:
按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的头部依次提取与相应一级缓存队列对应的预设数量的待处理数据。
可选的,所述一级缓存队列为环形缓存队列;
所述依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中的一级缓存队列,包括:
依照所述至少一个待处理数据的优先级,将所述至少一个待处理数据写入与优先级相对应的预设的一级缓存队列集合中一级缓存队列的头部;
所述按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中依次提取与相应一级缓存队列对应的预设数量的待处理数据,包括:
按照队列轮询方式,从各个一级缓存队列集合中的一级缓存队列中的尾部依次提取与相应一级缓存队列对应的预设数量的待处理数据。
可选的,所述二级缓存队列为单堵塞队列;
所述依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,包括:
依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的尾部。
可选的,所述二级缓存队列为环形缓存队列;
所述依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列,包括:
依次将每一次轮询所提取的待处理数据写入预设的二级缓存队列的头部。
可选的,所述依次将每一次轮询所提取的待处理数据顺序写入预设的二级缓存队列,包括:
依次将每一次轮询所提取的待处理数据按照优先级从高到低的顺序写入预设的二级缓存队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410415527.0/2.html,转载请声明来源钻瓜专利网。