一种数据处理方法和数据处理系统技术方案

技术编号:7001979 阅读:243 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及数据处理技术,针对现有数据处理方法效率低下的缺陷,提供一种数据处理方法和数据处理系统。数据处理方法包括在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数据记录并将其写入消息队列,然后进入休眠模式;多个处理线程基于轮询方式处理消息队列中的数据记录并将处理结果写入循环缓冲区;在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库中。本发明专利技术还提供了数据处理系统。本发明专利技术技术方案处理效率更高,并可减少了系统资源消耗以及减少回写操作与数据库交互的次数,本发明专利技术技术方案在运行过程中无需进行内存的动态申请和释放,减少了系统CPU的消耗。

【技术实现步骤摘要】

本专利技术涉及数据处理技术,更具体地说,涉及一种数据处理方法和数据处理系统
技术介绍
现有数据处理方法多采用单线程处理方式,其大致流程为1、从数据库批量读取一批数据;2、逐条处理读取的数据,所述处理可以是例如但不限于数据计算、流程控制等;3、根据步骤2中的处理结果,更新对应的数据在原始数据表中的状态信息。上述处理方法的优点是操作简单,实现方便。然而不难想象,由于采用单线程处 理,上述处理方法的处理效率十分低下,在处理对象庞大的情况下,往往存在性能瓶颈。此 外,在上述处理方案中,步骤3的执行严格依赖于步骤2的处理结果,整个处理流程必须按 照步骤1、2、3的顺序串行执行。因此,当任一步骤因出现异常导致处理停滞时,其他步骤均 无法正常进行。而且步骤1在从数据库中读取数据时需要使用记录集游标,这种游标是一 种临界资源,多任务并发访问时必须对其进行资源同步,而同步处理必然导致效率瓶颈。因此,需要一种数据处理解决方案,能够有效解决现有技术之中存在的上述问题。
技术实现思路
本专利技术要解决的技术问题在于,针对现有数据处理方法效率低下的缺陷,提供一 种数据处理方法和数据处理系统。本专利技术解决其技术问题所采用的技术方案是构造一种数据处理方法,包括读取步骤,包括在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数 据记录并将其写入消息队列,然后进入休眠模式;处理步骤,包括多个处理线程基于轮询方式处理消息队列中的数据记录并将处理 结果写入循环缓冲区;回写步骤,包括在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时, 从循环缓冲区读取预设数量的处理结果并回写到数据库中。在本专利技术提供的种数据处理方法中,在读取多条数据记录后,所述读取步骤还包 括,对读取的数据记录执行去重操作,然后将去重操作后的数据记录写入所述消息队列,所 述去重操作包括对于读取的每条数据记录,在检查到所读取的数据记录中存在与其相同的 数据记录时,为相同的数据记录生成预先设置的处理结果,并将生成的处理结果写入循环 缓冲区,然后将相同的数据记录从读取的数据记录中删除。在本专利技术提供的数据处理方法中,所述处理步骤还包括,对于每一条处理结果,在 将其写入循环缓冲区后,发出检测通知;所述回写步骤还包括在收到检测通知时,检测循环缓冲区内处理结果的数量是否 到达预先设置的阈值,在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库。在本专利技术提供的数据处理方法中,所述回写步骤还包括,在检测到循环缓冲区为 空时,发出所述读取通知。在本专利技术提供的数据处理方法中,所述轮询方式为Leader-Follower模式。本专利技术还提供了一种数据处理系统,包括读取模块,用于在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数 据记录并将其写入消息队列,然后进入休眠模式;处理模块,用于通过多个处理线程基于轮询方式处理消息队列中的数据记录并将 处理结果写入循环缓冲区;回写步骤,包括在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时, 从循环缓冲区读取预设数量的处理结果并回写到数据库中。在本专利技术提供的数据处理系统中,在读取多条数据记录后,所述读取模块还用于, 对读取的数据记录执行去重操作,然后将去重操作后的数据记录写入所述消息队列,所述 去重操作包括对于读取的每条数据记录,在检查到所读取的数据记录中存在与其相同的数 据记录时,为相同的数据记录生成预先设置的处理结果,并将生成的处理结果写入循环缓 冲区,然后将相同的数据记录从读取的数据记录中删除。在本专利技术提供的数据处理系统中,所述处理模块还用于,对于每一条处理结果,在 将其写入循环缓冲区后,发出检测通知;所述回写模块还用于在收到检测通知时,检测循环缓冲区内处理结果的数量是否 到达预先设置的阈值,在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从 循环缓冲区读取预设数量的处理结果并回写到数据库。在本专利技术提供的数据处理系统中,所述回写模块还用于,在检测到循环缓冲区为 空时,发出所述读取通知。在本专利技术提供的数据处理系统中,所述轮询方式为Leader-Follower模式。实施本专利技术的技术方案,具有以下有益效果本专利技术提供的数据处理方法和 数据处理系统采用线程池技术通过多线程方式处理读取的数据记录,因此处理效率更 高;同时,在采用多线程方式处理读取的数据记录时,本专利技术提供的技术方案采用了 Leader-Followers方式对并发的多个处理线程进行调配,减少了系统资源竞争;而且,本 专利技术提供的技术方案将数据处理过程和数据回写过程分离,减少了与数据库的连接数,以 及回写操作与数据库交互的次数;此外,本专利技术在内部采用循环缓存区进行处理结果缓存, 整个缓存区循环使用,运行过程中无需进行内存的动态申请和释放,减少了系统CPU的消 耗;最后,本专利技术提供的技术方案为上层应用提供了简洁的API,有助于大幅度降低开发难 度和工作量。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中图1是依据本专利技术一较佳实施例的数据处理方法的读取步骤的流程图;图2是依据本专利技术一较佳实施例的数据处理系统的逻辑结构示意图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并 不用于限定本专利技术。本专利技术提供了一种数据处理方法和数据处理系统,采用线程池技术通过多线程方 式处理读取的数据记录,因此处理效率更高;同时,在采用多线程方式处理读取的数据记录 时,本专利技术提供的技术方案采用了 Leader-Followers方式对并发的多个处理线程进行调 配,减少了系统资源竞争;而且,本专利技术提供的技术方案将数据处理过程和数据回写过程分 离,减少了与数据库的连接数,以及回写操作与数据库交互的次数;此外,本专利技术在内部采 用循环缓存区进行处理结果缓存,整个缓存区循环使用,运行过程中无需进行内存的动态 申请和释放,减少了系统CPU的消耗;最后,本专利技术提供的技术方案为上层应用提供了简洁 的API,有助于大幅度降低开发难度和工作量。下面就结合附图和具体实施例来对本专利技术提 供的技术方案进行详细描述。本专利技术提供的数据处理方法包括读取步骤、处理步骤和回写步骤。下面分别对这 三个步骤进行详细描述。图1是依据本专利技术一较佳实施例的数据处理方法的读取步骤100的流程图。如图 1所示,读取步骤100开始于步骤102。随后,在下一步骤104,接收读取通知。在具体实现过程中,读取通知可在启动时触 发,也可在回写步骤中触发。有关在回写步骤中触发读取通知的内容将在下文进行详细描 述。随后,在下一步骤106,退出休眠模式。随后,在下一步骤108,从数据库中读取预设数量的数据记录。随后,在下一步骤110,执行去重操作,包括对于读取的每条数据记录,在检查到所 读取的数据记录中存在与其相同的数据记录时,为相同的数据记录生成预先设置的处理结 果(例如但不限于“已处理”),并将生成的处理结果写入循环缓冲区,然后将相同的数据记 录从读取的数据记录中删除。有关循环缓冲区的内容将在下文进行详细描述。随后,在下一步骤112,将执行去重操作后的数据记录写入消息队列。随后本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:读取步骤,包括在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数据记录并将其写入消息队列,然后进入休眠模式;处理步骤,包括多个处理线程基于轮询方式处理消息队列中的数据记录并将处理结果写入循环缓冲区;回写步骤,包括在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库中。

【技术特征摘要】

【专利技术属性】
技术研发人员:王迎峰邓福喜张宗元李升林林伟军廖炳才柳江
申请(专利权)人:卓望数码技术深圳有限公司
类型:发明
国别省市:94

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

1