数据处理方法和装置的制造方法

文档序号:9922128阅读:429来源:国知局
数据处理方法和装置的制造方法
【技术领域】
[0001 ]本发明涉及计算机技术领域,具体涉及一种数据处理方法和装置。
【背景技术】
[0002]随着计算机技术的飞速发展,在许多应用领域,存在越来越多的需要管理的数据,诸如用户信息数据、系统日志数据等。通常采用数据库对这些数据进行管理。在通过对数据库中的数据进行操作来完成某种任务时,如果操作失败的话会产生任务失败数据。例如,如果期望为某个用户增加经验值,则需要更新数据库中存储的该用户的经验值数据。在更新用户的经验值数据时,如果由于某些原因导致更新操作失败,也就是增加经验值的任务失败,则可以产生一条关于为该用户增加经验值的任务失败的记录,该记录即上述任务失败数据。通常将任务失败数据写入消息队列中,消费者会不断轮询该消息队列,从消息队列中取出并处理任务失败数据。正常情况下失败任务的数量比较少,但是在数据库出现故障,无法进行数据写入操作的情况下,会产生大量任务失败数据。大量的任务失败数据涌入消息队列会给消息队列带来巨大压力,很有可能导致消息队列崩溃。

【发明内容】

[0003]鉴于上述问题,提出了本发明以便提供一种至少部分地解决上述问题的数据处理方法和装置。
[0004]根据本发明一个方面,提供一种数据处理方法。该数据处理方法包括:接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;将所述任务失败数据分别存储到与其所属类别相对应的消息队列中;以及利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
[0005]根据本发明另一个方面,提供一种数据处理装置。该数据处理装置包括分类模块、存储模块和处理模块。分类模块用于接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务。存储模块用于将所述任务失败数据分别存储到与其所属类别相对应的消息队列中。处理模块用于利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
[0006]根据本发明实施例的数据处理方法和装置,将任务失败数据进行分类,由与任务失败数据所属类别相对应的消费者进程处理任务失败数据,这样可以提高对任务失败数据的处理速度,避免任务失败数据长期留存在消息队列中,从而可以缓解消息队列的存储压力。
[0007]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0008]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0009]图1示出根据本发明一个实施例的数据处理方法的流程示意图;
[0010]图2示出根据本发明另一个实施例的数据处理方法的流程示意图;
[0011]图3示出根据本发明另一个实施例的数据处理方法的流程示意图;
[0012]图4示出根据本发明另一个实施例的数据处理方法的流程示意图;以及
[0013]图5示出根据本发明一个实施例的数据处理装置的示意性框图。
【具体实施方式】
[0014]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0015]根据本发明的一个方面,提供一种数据处理方法。图1示出根据本发明一个实施例的数据处理方法的流程示意图。
[0016]如图1所示,数据处理方法100包括以下步骤。
[0017]在步骤S110,接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务。
[0018]消息队列可以存储任务失败数据。任务失败数据可以是在对数据库进行数据操作时任务失败所产生的记录。例如,如果为用户增加经验值的任务失败,即对数据库中存储的某用户的经验值数据的更新操作没有成功,则可以生成任务失败数据。可以将这些任务失败数据写入消息队列。
[0019]示例性地,所述消息队列可以设置于内存中。内存的读写速度快,响应时间短,非常适于进行数据的临时缓存和中转,因此可以使用内存存储消息队列。
[0020]可以建立不同的消息队列,每个消息队列用于存储某种类别的任务失败数据。因此,在接收到任务失败数据时,可以对接收到的任务失败数据进行分类,以确定其应当存储于哪个消息队列中。
[0021]例如,可以针对为用户增加经验值的任务、为用户分配特权的任务以及记录用户的任务完成状态的任务分别建立三个消息队列:消息队列A、消息队列B和消息队列C。消息队列A用于存储在为用户增加经验值的任务执行失败时产生的任务失败数据,消息队列B用于存储在为用户分配特权的任务执行失败时产生的任务失败数据,消息队列C用于存储在记录用户的任务完成状态的任务执行失败时产生的任务失败数据。为了描述方便,在下文的示例中将沿用本示例中关于消息队列A、消息队列B和消息队列C的设定,本领域技术人员可以理解,这些仅是示例而非对本发明的限制。
[0022]在步骤S120,将所述任务失败数据分别存储到与其所属类别相对应的消息队列中。
[0023]可以根据步骤SllO的分类结果将任务失败数据存储到对应的消息队列中。例如,可以将为用户增加经验值的任务执行失败时产生的任务失败数据存储到消息队列A中,将为用户分配特权的任务执行失败时产生的任务失败数据存储到消息队列B中,将记录用户的任务完成状态的任务执行失败时产生的任务失败数据存储到消息队列C中。
[0024]在步骤S130,利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
[0025]可以利用消费者进程轮询消息队列,以在消息队列中消费任务失败数据。每个消息队列具有各自对应的消费者进程。例如,消息队列A中的任务失败数据可以利用消费者进程a处理,消息队列B中的任务失败数据可以利用消费者进程b处理,消息队列C中的任务失败数据可以利用消费者进程c处理。
[0026]通常存储数据的数据库可以是分布式部署的,例如,存储经验值数据的数据库与存储特权数据的数据库可以位于不同的机房中,因此当某个机房出现故障时,针对该机房的数据库的数据操作可能大部分会失败,而其他机房是可以正常工作的。因此消费者进程无需大规模轮询针对其他机房的数据库的数据操作所产生的任务失败数据。因此,将任务失败数据按照失败任务的类型进行分类并利用专用的消息队列和消费者进程进行处理是一种高效的数据处理方式,这可以加快数据处理速度,并且有助于有针对性地提高特定类别的任务失败数据的处理能力。
[0027]总之,与由同一消息队列存储任务失败数据并由消费者进程统一消费和处理该消息队列中的任务失败数据不同,根据本发明实施例,对消息队列和消费者进程进行区分,不同的消费者进程处理不同的消息队列中的任务失败数据,这样,消费者进程可以互不影响,对任务失败数据的处理将更为灵活高效,可以有效缓解消息队列的存储压力。
[0028]根据本发明实施例的数据处理方法,将任务失败数据进行分类,由与任务失败数据所属类别相对应的消费者进程处理任务失败数据,这样可以提高对任务失败数据的处理速度,避免任务失败数据长期留存在消息队列中,从而可以缓解消息队列的存储压力。
[0029]图2示出根据本发明另一个实施例的数据处理方法200的流程示意图。图2所示的数据处理方法200的步骤3210、3220和3240分别与图1所示的数据处理方法100的步骤3110至S130相对应。本领域技术人员根据图1和上文的描述可以理解图2中的上述步骤,为了简洁,在此不再赘述。根据本实施例,在步骤S240之前,数据处理方法200可以进一步包括步骤S230o
[0030]在步骤S230,为消息队列平均分配消费者进程。
[0031]如上文所述,可以将为用户增加经验值的任务执行失败时产生的任务失败数据存储到消息队列A中,将为用户分配特权的任务执行失败时产生的任务失败数据存储到消息队列B中,将记录用户的任务完成状态的任务执行失败时产生的任务失败数据存储到消息队列C中。
[0032]可以采用平均分配方式为消息队列A、消息队列B和消息队列C分配消费者进程,例如,可以为每个消息队列分配10个消费者进程,也就是说,这三个消息队列分配到的消费者进程的数目相同。平均分配是一种对计算资源的均衡处理方式,可以在初始启用消息队列时采用这种方式分配消费者进程。
[0033]虽然图2中示出步骤S230在步骤S220之后实施,但是可以理
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1