遍历数据的方法及装置制造方法及图纸

技术编号:14637052 阅读:82 留言:0更新日期:2017-02-15 11:13
本发明专利技术提出了一种遍历数据的方法,包括:对编码选择器的多个参数进行设置,并将执行编码分配给所述编码选择器,其中,多个参数包括:运行状态、运行时间以及多种遍历格式;对线程池的执行线程数以及执行步长进行设置;以及在线程池中的线程分别向编码选择器申请执行编码,若申请成功,则线程通过处理器执行遍历操作,并对遍历操作次数进行统计;若申请失败,则线程通过处理器执行退出操作。本发明专利技术还公开了一种遍历数据的装置。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别地涉及一种遍历数据的方法及装置
技术介绍
目前的电子商务领域中,随着互联网及电商的发展,第三方商家商品数量激增,数据量大,操作频繁等特点日益突出,对系统数据处理能力的要求也越来越高,根据政策规定的变化,经常需要对上亿商品数据进行批量操作,例如,对商品进行7天无理由退货打标、清理违规品牌商品等。现有技术针对上述情况,采用的具体方式为:系统先查询确认数据总量,并根据单次查询的查询数量,计算查询次数,根据查询次数循环查询数据;或者在数据库查询并按某种条件进行排序,截取指定区段,即根据当前查询次数及单次查询记录数将数据返回,再执行相应的业务操作。上述操作方式对系统产生了很大的影响,即一方面,从系统处理大数据的稳定性来说,执行效率低、消耗数据库资源大,在查询越后,查询遍历性能越来越慢,即处理速度缓慢且易导致死机状态,另一个方面,从系统处理大数据的灵活性来说,不能有效的实现在系统压力大的情况下,限制执行速度或暂停,在系统空闲情况下,调整执行速度,控制执行效率,避免影响系统业务正常运行的处理。
技术实现思路
有鉴于此,本专利技术提供一种遍历数据的方法及装置,可以遍历上亿的海量数据,通过控制遍历运行速度、数据编码自增特性、线程池内执行线程在运行时可动态增加以及执行步长可在运行时修改,实现了遍历海量数据的可伸缩性与高效性;通过提供暂停及恢复功能,实现了在系统空闲时,通过增加执行线程以及调高执行步长来提高遍历速度;当系统繁忙时,可以通过缩减执行线程以及调低步长来减轻系统压力,也可以进入暂停状态,在系统稳定时,再次恢复执行运行。从而有效的协调了根据线程不同状态调整系统执行线程数,进一步有效地提高了大数据处理效率与可控性。为实现上述目的,根据本专利技术的一个方面,提供了一种遍历数据的方法,包括:对编码选择器的多个参数进行设置,并将执行编码分配给所述编码选择器,其中,多个参数包括:运行状态、运行时间以及多种遍历格式;对线程池的执行线程数以及执行步长进行设置;以及在所述线程池中的线程分别向所述编码选择器申请所述执行编码,若申请成功,则线程通过处理器执行遍历操作,并对遍历操作次数进行统计;若申请失败,则线程通过处理器执行退出操作。可选地,对线程池的执行线程数以及执行步长进行设置具体包括:通过控制器对所述线程池已设置的所述执行线程数以及所述执行步长进行验证。可选地,在所述线程池中的线程分别向所述编码选择器申请所述执行编码具体包括:检测在所述线程池中的线程是否接收到退出操作,并退出执行。可选地,若申请成功,则线程通过处理器进行遍历操作具体包括:若所述线程池内增加执行线程时,处理器对所述线程池新增启动线程,并根据所述执行编码遍历;若所述线程池内缩减执行线程时,处理器从所述线程池中获取第一个执行线程,对所述第一个执行线程发出退出信号,并执行退出操作;以及若所述线程池内无执行线程时,控制器变更为暂停状态,等待增加遍历线程操作。为实现上述目的,根据本专利技术的另一个方面,提供了一种遍历数据的装置,包括:编码选择器设置模块,用于对编码选择器的多个参数进行设置,并将执行编码分配给所述编码选择器,其中,多个参数包括:运行状态、运行时间以及多种遍历格式;线程池设置模块,用于对线程池的执行线程数以及执行步长进行设置;以及遍历模块,用于在所述线程池中的线程分别向所述编码选择器申请所述执行编码,若申请成功,则线程通过处理器进行遍历操作,并对遍历操作次数进行统计;若申请失败,则线程通过处理器进行退出操作。可选地,所述线程池设置模块具体包括:验证单元,用于通过控制器对所述线程池已设置的所述执行线程数以及所述执行步长进行验证。可选地,所述遍历模块具体包括:退出检测单元,用于检测在所述线程池中的线程是否接收到退出操作,并退出执行。可选地,所述遍历模块具体包括:线程执行单元,用于若所述线程池内增加执行线程时,处理器对所述线程池新增启动线程,并根据所述执行编码遍历;线程退出单元,用于若所述线程池内缩减执行线程时,处理器从所述线程池中获取第一个执行线程,对所述第一个执行线程发出退出信号,并执行退出操作;以及暂停等待单元,用于若所述线程池内无执行线程时,控制器变更为暂停状态,等待增加遍历线程操作。根据本专利技术的技术方案,本专利技术提供一种遍历数据的方法,可以遍历上亿的海量数据,通过控制遍历运行速度、数据编码自增特性、线程池内执行线程在运行时可动态增加以及执行步长可在运行时修改,实现了遍历海量数据的可伸缩性与高效性;通过提供暂停及恢复功能,实现了在系统空闲时,通过增加执行线程以及调高执行步长来提高遍历速度;当系统繁忙时,可以通过缩减执行线程以及调低步长来减轻系统压力,也可以进入暂停状态,在系统稳定时,再次恢复执行运行。从而有效的协调了根据线程不同状态调整系统执行线程数,进一步有效地提高了大数据处理效率与可控性。本专利技术还公开了一种遍历数据的装置。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的一种遍历数据的方法的步骤流程图;以及图2是根据本专利技术实施例的一种遍历数据的装置的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施方式做出说明,其中包括本专利技术实施方式的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施方式做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。传统中通过数据库分页方式查询遍历只能应用于小数据量情形,其中,经典的数据分页方法为:ADO记录集分页法,也就是利用ADO自带的分页功能,即游标来实现分页,但是这种分页方法仅适用于小数据量的情形,因为游标本身有缺点;因为游标为存放在内存中,很浪费内存。游标一旦建立,就会将相关的记录锁住,直到取消游标为止。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出的数据条件的不同进行不同的操作,而对于多表和大表中定义的游标,即大的数据集合循环很容易使程序进入一个漫长的等待甚至死机状态。更重要的是,对于非常大的数据模型而言,通过数据库分页方式查询遍历,如果按照传统的每次都加载整个数据源的方式是非常浪费资源的,进而在POP商品中心系统中采用了本专利技术提出的一种遍历数据的方法可以应用于大数据量情形,使商品中心更简便处理商品。例如,对商品进行设置标识、商品缓存刷新等操作,全量对商品遍历所耗时由原来100多小时,缩短至5小时,极大减轻数据库压力,同时原本只能遍历200万的商品数据,现可遍历近3亿商品数据量。如图1所示,本专利技术实施例的一种遍历数据的方法的步骤流程图。遍历数据的方法,包括以下具体步骤:步骤S1:对编码选择器的多个参数进行设置,并将执行编码分配给编码选择器,其中,多个参数包括:运行状态、运行时间以及多种遍历格式,且本专利技术可以将上述参数通过状态显示装置对其进行显示,由此达到了遍历参数及遍历执行状态的实时可监控性。具体地,编码选择器根据初始化信息,分配执行编码,即每条线程都对应一个商品编码。同时,编码选择器还用于统计分配的商品编码数以及已经执行的商品数,且通过对运行状态、运行时间以及多种遍历格本文档来自技高网...
遍历数据的方法及装置

【技术保护点】
一种遍历数据的方法,其特征在于,包括:对编码选择器的多个参数进行设置,并将执行编码分配给所述编码选择器,其中,多个参数包括:运行状态、运行时间以及多种遍历格式;对线程池的执行线程数以及执行步长进行设置;以及在所述线程池中的线程分别向所述编码选择器申请所述执行编码,若申请成功,则线程通过处理器执行遍历操作,并对遍历操作次数进行统计;若申请失败,则线程通过处理器执行退出操作。

【技术特征摘要】
1.一种遍历数据的方法,其特征在于,包括:对编码选择器的多个参数进行设置,并将执行编码分配给所述编码选择器,其中,多个参数包括:运行状态、运行时间以及多种遍历格式;对线程池的执行线程数以及执行步长进行设置;以及在所述线程池中的线程分别向所述编码选择器申请所述执行编码,若申请成功,则线程通过处理器执行遍历操作,并对遍历操作次数进行统计;若申请失败,则线程通过处理器执行退出操作。2.根据权利要求1所述的方法,其特征在于,对线程池的执行线程数以及执行步长进行设置具体包括:通过控制器对所述线程池已设置的所述执行线程数以及所述执行步长进行验证。3.根据权利要求1所述的方法,其特征在于,在所述线程池中的线程分别向所述编码选择器申请所述执行编码具体包括:检测在所述线程池中的线程是否接收到退出操作,并退出执行。4.根据权利要求1所述的方法,其特征在于,若申请成功,则线程通过处理器进行遍历操作具体包括:若所述线程池内增加执行线程时,处理器对所述线程池新增启动线程,并根据所述执行编码遍历;若所述线程池内缩减执行线程时,处理器从所述线程池中获取第一个执行线程,对所述第一个执行线程发出退出信号,并执行退出操作;以及若所述线程池内无执行线程时,控制器变更为暂停状态,等待增加遍历线程操作。5.一种遍历数据的装置,...

【专利技术属性】
技术研发人员:徐贤军
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1