CN105701257A - 数据处理方法和装置 - Google Patents

数据处理方法和装置 Download PDF

Info

Publication number
CN105701257A
CN105701257A CN201610201846.0A CN201610201846A CN105701257A CN 105701257 A CN105701257 A CN 105701257A CN 201610201846 A CN201610201846 A CN 201610201846A CN 105701257 A CN105701257 A CN 105701257A
Authority
CN
China
Prior art keywords
message queue
data
mission failure
failure data
processing method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610201846.0A
Other languages
English (en)
Other versions
CN105701257B (zh
Inventor
郭军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hongxiang Technical Service Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201610201846.0A priority Critical patent/CN105701257B/zh
Publication of CN105701257A publication Critical patent/CN105701257A/zh
Application granted granted Critical
Publication of CN105701257B publication Critical patent/CN105701257B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/481Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种数据处理方法和装置。该数据处理方法包括:接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;将所述任务失败数据分别存储到与其所属类别相对应的消息队列中;以及利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。根据本发明实施例的数据处理方法和装置,将任务失败数据进行分类,由与任务失败数据所属类别相对应的消费者进程处理任务失败数据,这样可以提高对任务失败数据的处理速度,避免任务失败数据长期留存在消息队列中,从而可以缓解消息队列的存储压力。

Description

数据处理方法和装置
技术领域
本发明涉及计算机技术领域,具体涉及一种数据处理方法和装置。
背景技术
随着计算机技术的飞速发展,在许多应用领域,存在越来越多的需要管理的数据,诸如用户信息数据、***日志数据等。通常采用数据库对这些数据进行管理。在通过对数据库中的数据进行操作来完成某种任务时,如果操作失败的话会产生任务失败数据。例如,如果期望为某个用户增加经验值,则需要更新数据库中存储的该用户的经验值数据。在更新用户的经验值数据时,如果由于某些原因导致更新操作失败,也就是增加经验值的任务失败,则可以产生一条关于为该用户增加经验值的任务失败的记录,该记录即上述任务失败数据。通常将任务失败数据写入消息队列中,消费者会不断轮询该消息队列,从消息队列中取出并处理任务失败数据。正常情况下失败任务的数量比较少,但是在数据库出现故障,无法进行数据写入操作的情况下,会产生大量任务失败数据。大量的任务失败数据涌入消息队列会给消息队列带来巨大压力,很有可能导致消息队列崩溃。
发明内容
鉴于上述问题,提出了本发明以便提供一种至少部分地解决上述问题的数据处理方法和装置。
根据本发明一个方面,提供一种数据处理方法。该数据处理方法包括:接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;将所述任务失败数据分别存储到与其所属类别相对应的消息队列中;以及利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
根据本发明另一个方面,提供一种数据处理装置。该数据处理装置包括分类模块、存储模块和处理模块。分类模块用于接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务。存储模块用于将所述任务失败数据分别存储到与其所属类别相对应的消息队列中。处理模块用于利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
根据本发明实施例的数据处理方法和装置,将任务失败数据进行分类,由与任务失败数据所属类别相对应的消费者进程处理任务失败数据,这样可以提高对任务失败数据的处理速度,避免任务失败数据长期留存在消息队列中,从而可以缓解消息队列的存储压力。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出根据本发明一个实施例的数据处理方法的流程示意图;
图2示出根据本发明另一个实施例的数据处理方法的流程示意图;
图3示出根据本发明另一个实施例的数据处理方法的流程示意图;
图4示出根据本发明另一个实施例的数据处理方法的流程示意图;以及
图5示出根据本发明一个实施例的数据处理装置的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
根据本发明的一个方面,提供一种数据处理方法。图1示出根据本发明一个实施例的数据处理方法的流程示意图。
如图1所示,数据处理方法100包括以下步骤。
在步骤S110,接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务。
消息队列可以存储任务失败数据。任务失败数据可以是在对数据库进行数据操作时任务失败所产生的记录。例如,如果为用户增加经验值的任务失败,即对数据库中存储的某用户的经验值数据的更新操作没有成功,则可以生成任务失败数据。可以将这些任务失败数据写入消息队列。
示例性地,所述消息队列可以设置于内存中。内存的读写速度快,响应时间短,非常适于进行数据的临时缓存和中转,因此可以使用内存存储消息队列。
可以建立不同的消息队列,每个消息队列用于存储某种类别的任务失败数据。因此,在接收到任务失败数据时,可以对接收到的任务失败数据进行分类,以确定其应当存储于哪个消息队列中。
例如,可以针对为用户增加经验值的任务、为用户分配特权的任务以及记录用户的任务完成状态的任务分别建立三个消息队列:消息队列A、消息队列B和消息队列C。消息队列A用于存储在为用户增加经验值的任务执行失败时产生的任务失败数据,消息队列B用于存储在为用户分配特权的任务执行失败时产生的任务失败数据,消息队列C用于存储在记录用户的任务完成状态的任务执行失败时产生的任务失败数据。为了描述方便,在下文的示例中将沿用本示例中关于消息队列A、消息队列B和消息队列C的设定,本领域技术人员可以理解,这些仅是示例而非对本发明的限制。
在步骤S120,将所述任务失败数据分别存储到与其所属类别相对应的消息队列中。
可以根据步骤S110的分类结果将任务失败数据存储到对应的消息队列中。例如,可以将为用户增加经验值的任务执行失败时产生的任务失败数据存储到消息队列A中,将为用户分配特权的任务执行失败时产生的任务失败数据存储到消息队列B中,将记录用户的任务完成状态的任务执行失败时产生的任务失败数据存储到消息队列C中。
在步骤S130,利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
可以利用消费者进程轮询消息队列,以在消息队列中消费任务失败数据。每个消息队列具有各自对应的消费者进程。例如,消息队列A中的任务失败数据可以利用消费者进程a处理,消息队列B中的任务失败数据可以利用消费者进程b处理,消息队列C中的任务失败数据可以利用消费者进程c处理。
通常存储数据的数据库可以是分布式部署的,例如,存储经验值数据的数据库与存储特权数据的数据库可以位于不同的机房中,因此当某个机房出现故障时,针对该机房的数据库的数据操作可能大部分会失败,而其他机房是可以正常工作的。因此消费者进程无需大规模轮询针对其他机房的数据库的数据操作所产生的任务失败数据。因此,将任务失败数据按照失败任务的类型进行分类并利用专用的消息队列和消费者进程进行处理是一种高效的数据处理方式,这可以加快数据处理速度,并且有助于有针对性地提高特定类别的任务失败数据的处理能力。
总之,与由同一消息队列存储任务失败数据并由消费者进程统一消费和处理该消息队列中的任务失败数据不同,根据本发明实施例,对消息队列和消费者进程进行区分,不同的消费者进程处理不同的消息队列中的任务失败数据,这样,消费者进程可以互不影响,对任务失败数据的处理将更为灵活高效,可以有效缓解消息队列的存储压力。
根据本发明实施例的数据处理方法,将任务失败数据进行分类,由与任务失败数据所属类别相对应的消费者进程处理任务失败数据,这样可以提高对任务失败数据的处理速度,避免任务失败数据长期留存在消息队列中,从而可以缓解消息队列的存储压力。
图2示出根据本发明另一个实施例的数据处理方法200的流程示意图。图2所示的数据处理方法200的步骤S210、S220和S240分别与图1所示的数据处理方法100的步骤S110至S130相对应。本领域技术人员根据图1和上文的描述可以理解图2中的上述步骤,为了简洁,在此不再赘述。根据本实施例,在步骤S240之前,数据处理方法200可以进一步包括步骤S230。
在步骤S230,为消息队列平均分配消费者进程。
如上文所述,可以将为用户增加经验值的任务执行失败时产生的任务失败数据存储到消息队列A中,将为用户分配特权的任务执行失败时产生的任务失败数据存储到消息队列B中,将记录用户的任务完成状态的任务执行失败时产生的任务失败数据存储到消息队列C中。
可以采用平均分配方式为消息队列A、消息队列B和消息队列C分配消费者进程,例如,可以为每个消息队列分配10个消费者进程,也就是说,这三个消息队列分配到的消费者进程的数目相同。平均分配是一种对计算资源的均衡处理方式,可以在初始启用消息队列时采用这种方式分配消费者进程。
虽然图2中示出步骤S230在步骤S220之后实施,但是可以理解的是,这并非对本发明的限制,步骤S230也可以在步骤S210之前实施、在步骤S210之后及步骤S220之前实施,或者与步骤S210或步骤S220同时实施。只要能够达到与上述实施例相同或类似的效果,本发明并不对上述步骤的执行顺序进行限定。
图3示出根据本发明另一个实施例的数据处理方法300的流程示意图。图3所示的数据处理方法300的步骤S310至S330分别与图1所示的数据处理方法100的步骤S110至S130相对应。本领域技术人员根据图1和上文的描述可以理解图3中的上述步骤,为了简洁,在此不再赘述。根据本实施例,数据处理方法300可以进一步包括步骤S340和S350。
在步骤S340,监测消息队列中的至少部分消息队列中的任务失败数据的数据量。例如,可以利用计算机程序实时监测消息队列中的任务失败数据的数据量。
在步骤S350,基于所述至少部分消息队列中的任务失败数据的数据量调整与所述至少部分消息队列相对应的消费者进程的数目。
在初始启用消息队列时,可以为每个消息队列分配预设数目的消费者进程,例如,可以按照如上所述的平均分配方式为消息队列分配消费者进程。然后,可以根据消息队列中的任务失败数据的数据量动态调整消费者进程的数目。例如,对于数据量较大的消息队列,可以为其分配更多消费者进程,即增加与其相对应的消费者进程的数目,相对地,对于数据量较小的消息队列,可以为其分配更少消费者进程,即减少与其相对应的消费者进程的数目。通过这种方式,可以灵活地、动态地为消息队列分配合适数目的消费者进程,从而可以更合理地利用数据处理装置的计算资源。
虽然图3示出步骤S340和S350在步骤S330之后,但是可以理解的是,这并非对本发明的限制,步骤S340和S350可以在步骤S330之前实施。实际上,对消费者进程的调整是实时的、动态的,因此这些步骤也是可以循环实施的。
根据本发明实施例,上述步骤S350可以包括:如果至少部分消息队列中的特定消息队列中的任务失败数据的数据量大于第一阈值并且至少部分消息队列中的其他消息队列中的任务失败数据的数据量小于第二阈值,则将与其他消息队列相对应的消费者进程的数目减少特定数目并将与特定消息队列相对应的消费者进程的数目增加特定数目。
第一阈值和第二阈值可以是任何合适的值,并且第一阈值和第二阈值可以相同或不同,其可以根据需要而定,本发明不对此进行限制。
例如,第一阈值可以是100吉字节(GB),第二阈值可以是100兆字节(MB)。假设,消息队列A中的任务失败数据的数据量大于100GB,说明为用户增加经验值的任务大量失败,存储经验值数据的数据库可能出现了故障,与消息队列A相对应的消费者进程有可能处理不过来。假设与此同时,消息队列B和消息队列C中的任务失败数据的数据量都小于100MB,说明为用户分配特权的任务和记录用户的任务完成状态的任务进行比较正常,与消息队列B和消息队列C相对应的消费者进程可能有些处于空闲状态,这样,可以减少与消息队列B和/或消息队列C相对应的消费者进程的数目,并增加与消息队列A相对应的消费者进程的数目,以利用更多的消费者进程对消息队列A中的任务失败数据进行处理。
例如,假设初始分配给消息队列A、消息队列B和消息队列C的消费者进程的数目相等,均为10个。在一个示例中,可以将分配给消息队列B的消费者进程减少5个,并将分配给消息队列A的消费者进程增加5个。在另一个示例中,可以将分配给消息队列C的消费者进程减少5个,并将分配给消息队列A的消费者进程增加5个。在又一个示例中,可以将分配给消息队列B的消费者进程减少3个,将分配给消息队列C的消费者进程减少2个,并将分配给消息队列A的消费者进程增加5个。
图4示出根据本发明另一个实施例的数据处理方法400的流程示意图。图4所示的数据处理方法400的步骤S410至S430分别与图1所示的数据处理方法100的步骤S110至S130相对应。本领域技术人员根据图1和上文的描述可以理解图4中的上述步骤,为了简洁,在此不再赘述。根据本实施例,数据处理方法400可以进一步包括步骤S440和S450。
在步骤S440,接收与特定消息队列相关的进程调整指令。
可以接收与特定消息队列相关的进程调整指令,该进程调整指令可以是来自外部用户的。例如,如果用户发现存储经验值数据的数据库出现故障,消息队列A中的任务失败数据大量增加,则其可以发送进程调整指令,指示增加与消息队列A相对应的消费者进程的数目,例如指示增加5个消费者进程。
在步骤S450,根据所述进程调整指令调整与所述特定消息队列相对应的消费者进程的数目。
数据处理装置在接收到进程调整指令时,可以调整进程调整指令所要求调整的消费者进程的数目。
通过上述方式,可以向用户提供由用户自主调整消费者进程的实现途径,以更好地满足用户需求。
根据本发明实施例,上述步骤S130(S240、S330或S430)可以包括:利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
例如,如果任务失败数据指示为某用户增加经验值的任务执行失败,则可以访问存储该用户的经验值数据的数据库,以尝试重新对该用户的经验值数据进行更新。如果更新成功,则可以成功为该用户增加经验值,如果更新失败,则说明此时仍然存在问题,例如数据库的故障仍未修复,在这种情况下,为该用户增加经验值的任务重新执行失败。
根据本发明实施例,数据处理方法100(200、300或400)可以进一步包括:监测所述数据库的运行状态。所述利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务可以包括:当所述数据库的运行状态从异常状态转变为正常状态时,利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
可以利用计算机程序实时监测数据库的运行状态,例如可以每隔数分钟检查一次数据库是否可以正常进行读写操作,如果发现数据库的读写操作正常,则可以认为其故障修复,即认为其从异常状态转变为正常状态。当确认数据库从异常状态转变为正常状态时,可以尝试重新执行任务失败数据所指示的失败任务。
例如,如果通过监测发现存储经验值数据的数据库从异常状态转变为正常状态,则可以重新执行消息队列A中存储的任务失败数据所指示的失败任务,即重新为增加经验值失败的用户增加经验值。
通过以上方式,可以自动地有针对性地基于数据库的状态重新执行失败任务,避免计算资源的无意义操作。
根据本发明实施例,以上步骤S110(S210、S310或S410)可以包括:接收所述任务失败数据并根据所述任务失败数据所指示的失败任务的类型对所述任务失败数据进行分类。
示例性地,任务失败数据可以包括失败任务的标识符,该标识符可以用于指示失败任务的类型。这样,当接收到任务失败数据时,可以根据任务失败数据中的标识符确定任务失败数据所指示的失败任务的类型,并进而基于失败任务的类型对任务失败数据进行分类。例如,为用户增加经验值的任务执行失败时产生的任务失败数据可以包括标识符“exp”,为用户分配特权的任务执行失败时产生的任务失败数据可以包括标识符“priv”,记录用户的任务完成状态的任务执行失败时产生的任务失败数据可以包括标识符“task”。因此,可以根据任务失败数据中包括的标识符“exp”、“priv”和“task”将任务失败数据分为三类。
根据失败任务的类型对任务失败数据进行分类是一种简单有效的分类方式,其有利于对任务失败数据进行后续处理。
根据本发明的另一个方面,提供一种数据处理装置。图5示出根据本发明一个实施例的数据处理装置500的示意性框图。如图5所示,数据处理装置500包括分类模块510、存储模块520和处理模块530。
分类模块510用于接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务。存储模块520用于将所述任务失败数据分别存储到与其所属类别相对应的消息队列中。处理模块530用于利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
示例性地,所述消息队列可以设置于内存中。
如上文所述,消息队列可以存储任务失败数据。可以建立不同的消息队列,每个消息队列用于存储某种类别的任务失败数据。在分类模块510接收到任务失败数据之后,可以根据例如任务失败数据所指示的失败任务的类型对任务失败数据进行分类。存储模块520可以与分类模块510直接或间接地通信,其可以根据分类模块510的分类结果将任务失败数据存储在对应的消息队列中。处理模块530可以从消息队列中消费并处理任务失败数据。
分类模块510、存储模块520和处理模块530中的任何一者可以采用任何合适的硬件、软件和/或固件实现。
根据本发明实施例的数据处理装置,将任务失败数据进行分类,由与任务失败数据所属类别相对应的消费者进程处理任务失败数据,这样可以提高对任务失败数据的处理速度,避免任务失败数据长期留存在消息队列中,从而可以缓解消息队列的存储压力。
示例性地,所述数据处理装置500可以进一步包括分配模块(未示出),用于为所述消息队列平均分配消费者进程。如上文所述,可以为每个消息队列分配相同数目的消费者进程。
示例性地,所述数据处理装置500可以进一步包括队列监测模块和第一调整模块(未示出)。队列监测模块用于监测所述消息队列中的至少部分消息队列中的任务失败数据的数据量。第一调整模块用于基于所述至少部分消息队列中的任务失败数据的数据量调整与所述至少部分消息队列相对应的消费者进程的数目。
如上文所述,对于数据量较大的消息队列,可以为其分配更多消费者进程,对于数据量较小的消息队列,可以为其分配更少消费者进程。通过这种方式,可以灵活地、动态地为消息队列分配合适数目的消费者进程。
示例性地,所述第一调整模块可以包括调整子模块,用于如果所述至少部分消息队列中的特定消息队列中的任务失败数据的数据量大于第一阈值并且所述至少部分消息队列中的其他消息队列中的任务失败数据的数据量小于第二阈值,则将与所述其他消息队列相对应的消费者进程的数目减少特定数目并将与所述特定消息队列相对应的消费者进程的数目增加所述特定数目。
由于通常分配给消息队列的消费者进程的总数是比较稳定的,所以可以通过减少某些数据量较小的消息队列对应的消费者进程的数目来为数据量较大的消息队列提供更多的消费者进程。当需要增加与某个消息队列相对应的消费者进程的数目时,可以直接启动新的消费者进程来处理该消息队列中的任务失败数据。
示例性地,所述数据处理装置500可以进一步包括接收模块和第二调整模块(未示出)。接收模块用于接收与特定消息队列相关的进程调整指令。第二调整模块用于根据所述进程调整指令调整与所述特定消息队列相对应的消费者进程的数目。
接收模块可以利用交互装置实现,例如键盘、扬声器或触摸屏等。用户可以利用交互装置输入进程调整指令,例如可以经由显示屏上的显示界面改变分配给每个消息队列的消费者进程的数目。第二调整模块可以与接收模块直接或间接地通信,根据进程调整指令调整消费者进程的数目。
示例性地,所述处理模块530可以包括执行子模块,用于利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
示例性地,所述数据处理装置500可以进一步包括数据库监测模块,用于监测所述数据库的运行状态;所述执行子模块可以包括执行单元,用于当所述数据库的运行状态从异常状态转变为正常状态时,利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
通过实时监测可以及时获知数据库的运行状态,并且可以在数据库的运行状态正常时重新执行失败任务,这样可以避免计算资源的无意义操作。
示例性地,所述分类模块可以包括分类子模块,用于接收所述任务失败数据并根据接收的任务失败数据所指示的失败任务的类型对所述接收的任务失败数据进行分类。
如上文所述,任务失败数据可以包括失败任务的标识符,该标识符可以用于指示失败任务的类型。可以基于任务失败数据中包括的标识符对任务失败数据进行分类。当然,可以理解的是,上述分类方式仅是示例而非限制,还可以采用任何其他合适的分类方式对任务失败数据进行分类。例如,可以基于数据库发生故障的概率对与各数据库相关的任务失败数据进行分类。例如,数据库1发生故障的概率较大,数据库2和数据库3发生故障的概率均较小,则可以将与数据库1相关的任务失败数据分为一类,用单独的消息队列和对应的消费者进程进行处理,并且可以将数据库2和数据库3相关的任务失败数据分为一类,用单独的消息队列和对应的消费者进程进行处理。
上文已经描述了数据处理方法的各步骤的实施方式和优点等,本领域技术人员结合图1至4以及上文关于数据处理方法的描述,可以理解数据处理装置500的具体结构、运行方式及其优点等,本文不对此进行赘述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据处理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明实施例公开了A1、一种数据处理方法,包括:
接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;
将所述任务失败数据分别存储到与其所属类别相对应的消息队列中;以及
利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
A2、如A1所述的数据处理方法,在所述利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据之前,所述数据处理方法进一步包括:
为所述消息队列平均分配消费者进程。
A3、如A1或A2所述的数据处理方法,所述数据处理方法进一步包括:
监测所述消息队列中的至少部分消息队列中的任务失败数据的数据量;以及
基于所述至少部分消息队列中的任务失败数据的数据量调整与所述至少部分消息队列相对应的消费者进程的数目。
A4、如A3所述的数据处理方法,所述基于所述至少部分消息队列中的任务失败数据的数据量调整与所述至少部分消息队列相对应的消费者进程的数目包括:
如果所述至少部分消息队列中的特定消息队列中的任务失败数据的数据量大于第一阈值并且所述至少部分消息队列中的其他消息队列中的任务失败数据的数据量小于第二阈值,则将与所述其他消息队列相对应的消费者进程的数目减少特定数目并将与所述特定消息队列相对应的消费者进程的数目增加所述特定数目。
A5、如A1或A2所述的数据处理方法,所述数据处理方法进一步包括:
接收与特定消息队列相关的进程调整指令;以及
根据所述进程调整指令调整与所述特定消息队列相对应的消费者进程的数目。
A6、如A1所述的数据处理方法,所述利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据包括:
利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
A7、如A6所述的数据处理方法,
所述数据处理方法进一步包括:
监测所述数据库的运行状态;
所述利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务包括:
当所述数据库的运行状态从异常状态转变为正常状态时,利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
A8、如A1至A7任一项所述的数据处理方法,所述接收任务失败数据并对其进行分类包括:
接收所述任务失败数据并根据所述任务失败数据所指示的失败任务的类型对所述任务失败数据进行分类。
A9、如A1至A8任一项所述的数据处理方法,所述消息队列设置于内存中。
本发明实施例还公开了B10、一种数据处理装置,包括:
分类模块,用于接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;
存储模块,用于将所述任务失败数据分别存储到与其所属类别相对应的消息队列中;以及
处理模块,用于利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
B11、如B10所述的数据处理装置,所述数据处理装置进一步包括分配模块,用于为所述消息队列平均分配消费者进程。
B12、如B10或B11所述的数据处理装置,所述数据处理装置进一步包括:
队列监测模块,用于监测所述消息队列中的至少部分消息队列中的任务失败数据的数据量;以及
第一调整模块,用于基于所述至少部分消息队列中的任务失败数据的数据量调整与所述至少部分消息队列相对应的消费者进程的数目。
B13、如B12所述的数据处理装置,所述第一调整模块包括调整子模块,用于如果所述至少部分消息队列中的特定消息队列中的任务失败数据的数据量大于第一阈值并且所述至少部分消息队列中的其他消息队列中的任务失败数据的数据量小于第二阈值,则将与所述其他消息队列相对应的消费者进程的数目减少特定数目并将与所述特定消息队列相对应的消费者进程的数目增加所述特定数目。
B14、如B10或B11所述的数据处理装置,所述数据处理装置进一步包括:
接收模块,用于接收与特定消息队列相关的进程调整指令;以及
第二调整模块,用于根据所述进程调整指令调整与所述特定消息队列相对应的消费者进程的数目。
B15、如B10所述的数据处理装置,所述处理模块包括执行子模块,用于利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
B16、如B15所述的数据处理装置,
所述数据处理装置进一步包括数据库监测模块,用于监测所述数据库的运行状态;
所述执行子模块包括执行单元,用于当所述数据库的运行状态从异常状态转变为正常状态时,利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
B17、如B10至B16任一项所述的数据处理装置,所述分类模块包括分类子模块,用于接收所述任务失败数据并根据接收的任务失败数据所指示的失败任务的类型对所述接收的任务失败数据进行分类。
B18、如B10至B17任一项所述的数据处理装置,所述消息队列设置于内存中。

Claims (10)

1.一种数据处理方法,包括:
接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;
将所述任务失败数据分别存储到与其所属类别相对应的消息队列中;以及
利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
2.如权利要求1所述的数据处理方法,其特征在于,在所述利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据之前,所述数据处理方法进一步包括:
为所述消息队列平均分配消费者进程。
3.如权利要求1或2所述的数据处理方法,其特征在于,所述数据处理方法进一步包括:
监测所述消息队列中的至少部分消息队列中的任务失败数据的数据量;以及
基于所述至少部分消息队列中的任务失败数据的数据量调整与所述至少部分消息队列相对应的消费者进程的数目。
4.如权利要求3所述的数据处理方法,其特征在于,所述基于所述至少部分消息队列中的任务失败数据的数据量调整与所述至少部分消息队列相对应的消费者进程的数目包括:
如果所述至少部分消息队列中的特定消息队列中的任务失败数据的数据量大于第一阈值并且所述至少部分消息队列中的其他消息队列中的任务失败数据的数据量小于第二阈值,则将与所述其他消息队列相对应的消费者进程的数目减少特定数目并将与所述特定消息队列相对应的消费者进程的数目增加所述特定数目。
5.如权利要求1或2所述的数据处理方法,其特征在于,所述数据处理方法进一步包括:
接收与特定消息队列相关的进程调整指令;以及
根据所述进程调整指令调整与所述特定消息队列相对应的消费者进程的数目。
6.如权利要求1所述的数据处理方法,其特征在于,所述利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据包括:
利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
7.如权利要求6所述的数据处理方法,其特征在于,
所述数据处理方法进一步包括:
监测所述数据库的运行状态;
所述利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务包括:
当所述数据库的运行状态从异常状态转变为正常状态时,利用与每个消息队列相对应的消费者进程重新执行该消息队列中的任务失败数据所指示的失败任务。
8.如权利要求1至7任一项所述的数据处理方法,其特征在于,所述接收任务失败数据并对其进行分类包括:
接收所述任务失败数据并根据所述任务失败数据所指示的失败任务的类型对所述任务失败数据进行分类。
9.如权利要求1至8任一项所述的数据处理方法,其特征在于,所述消息队列设置于内存中。
10.一种数据处理装置,包括:
分类模块,用于接收任务失败数据并对其进行分类,其中,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;
存储模块,用于将所述任务失败数据分别存储到与其所属类别相对应的消息队列中;以及
处理模块,用于利用与每个消息队列相对应的消费者进程消费并处理该消息队列中的任务失败数据。
CN201610201846.0A 2016-03-31 2016-03-31 数据处理方法和装置 Active CN105701257B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610201846.0A CN105701257B (zh) 2016-03-31 2016-03-31 数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610201846.0A CN105701257B (zh) 2016-03-31 2016-03-31 数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN105701257A true CN105701257A (zh) 2016-06-22
CN105701257B CN105701257B (zh) 2019-05-21

Family

ID=56218224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610201846.0A Active CN105701257B (zh) 2016-03-31 2016-03-31 数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN105701257B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407398A (zh) * 2016-09-21 2017-02-15 福建中金在线信息科技有限公司 一种数据存储方法及***
CN106874122A (zh) * 2017-03-02 2017-06-20 上海携程国际旅行社有限公司 基于消息队列的事件分配方法及***
CN108184141A (zh) * 2017-11-22 2018-06-19 链家网(北京)科技有限公司 一种监控视频任务的处理方法及服务器
CN108536544A (zh) * 2018-03-21 2018-09-14 微梦创科网络科技(中国)有限公司 基于数据库消息队列的消费方法、装置、服务器和介质
CN108572877A (zh) * 2018-05-10 2018-09-25 厦门南讯软件科技有限公司 一种基于特征分组的并发消息处理方法
CN108681893A (zh) * 2018-05-07 2018-10-19 中国平安人寿保险股份有限公司 数据处理方法、装置、计算机设备及存储介质
CN109905412A (zh) * 2019-04-28 2019-06-18 山东渔翁信息技术股份有限公司 一种网络数据并行加解密处理方法、装置和介质
CN110096510A (zh) * 2019-04-09 2019-08-06 上海车轮互联网服务有限公司 教练信息处理方法及装置
CN110515805A (zh) * 2019-08-30 2019-11-29 京信通信***(中国)有限公司 性能监测方法、装置、通信设备及计算机存储介质
CN110968407A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 任务的执行方法、装置、存储介质及电子装置
CN112667368A (zh) * 2019-10-16 2021-04-16 北京京东乾石科技有限公司 一种任务数据处理方法和装置
CN112764892A (zh) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 管理进程的方法、设备和计算机程序产品

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000019312A2 (de) * 1998-09-28 2000-04-06 Siemens Aktiengesellschaft Verfahren zur verwaltung von prozessen
CN101425024A (zh) * 2008-10-24 2009-05-06 ***通信集团山东有限公司 一种多任务处理方法及装置
CN101448018A (zh) * 2008-12-26 2009-06-03 中兴通讯股份有限公司 进程间通信方法和装置
CN102402459A (zh) * 2010-09-10 2012-04-04 中兴通讯股份有限公司 网管***性能数据汇总的方法和装置
CN102426539A (zh) * 2011-11-01 2012-04-25 深圳市航天泰瑞捷电子有限公司 一种定时器任务自动处理方法及***
CN102789394A (zh) * 2011-05-19 2012-11-21 阿里巴巴集团控股有限公司 一种并行处理消息的方法、装置、节点及服务器集群
CN102981904A (zh) * 2011-09-02 2013-03-20 阿里巴巴集团控股有限公司 一种任务调度方法及***
CN104360824A (zh) * 2014-11-10 2015-02-18 北京奇虎科技有限公司 一种数据合并的方法和装置
CN104462370A (zh) * 2014-12-09 2015-03-25 北京百度网讯科技有限公司 分布式任务调度***及方法
CN104866602A (zh) * 2015-06-01 2015-08-26 走遍世界(北京)信息技术有限公司 队列处理方法及装置
CN105183549A (zh) * 2015-08-27 2015-12-23 携程计算机技术(上海)有限公司 基于任务分配的自动出票***

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000019312A2 (de) * 1998-09-28 2000-04-06 Siemens Aktiengesellschaft Verfahren zur verwaltung von prozessen
CN101425024A (zh) * 2008-10-24 2009-05-06 ***通信集团山东有限公司 一种多任务处理方法及装置
CN101448018A (zh) * 2008-12-26 2009-06-03 中兴通讯股份有限公司 进程间通信方法和装置
CN102402459A (zh) * 2010-09-10 2012-04-04 中兴通讯股份有限公司 网管***性能数据汇总的方法和装置
CN102789394A (zh) * 2011-05-19 2012-11-21 阿里巴巴集团控股有限公司 一种并行处理消息的方法、装置、节点及服务器集群
CN102981904A (zh) * 2011-09-02 2013-03-20 阿里巴巴集团控股有限公司 一种任务调度方法及***
CN102426539A (zh) * 2011-11-01 2012-04-25 深圳市航天泰瑞捷电子有限公司 一种定时器任务自动处理方法及***
CN104360824A (zh) * 2014-11-10 2015-02-18 北京奇虎科技有限公司 一种数据合并的方法和装置
CN104462370A (zh) * 2014-12-09 2015-03-25 北京百度网讯科技有限公司 分布式任务调度***及方法
CN104866602A (zh) * 2015-06-01 2015-08-26 走遍世界(北京)信息技术有限公司 队列处理方法及装置
CN105183549A (zh) * 2015-08-27 2015-12-23 携程计算机技术(上海)有限公司 基于任务分配的自动出票***

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407398A (zh) * 2016-09-21 2017-02-15 福建中金在线信息科技有限公司 一种数据存储方法及***
CN106874122A (zh) * 2017-03-02 2017-06-20 上海携程国际旅行社有限公司 基于消息队列的事件分配方法及***
CN108184141A (zh) * 2017-11-22 2018-06-19 链家网(北京)科技有限公司 一种监控视频任务的处理方法及服务器
CN108184141B (zh) * 2017-11-22 2020-07-24 贝壳找房(北京)科技有限公司 一种监控视频任务的处理方法及服务器
CN108536544A (zh) * 2018-03-21 2018-09-14 微梦创科网络科技(中国)有限公司 基于数据库消息队列的消费方法、装置、服务器和介质
CN108536544B (zh) * 2018-03-21 2021-06-25 微梦创科网络科技(中国)有限公司 基于数据库消息队列的消费方法、装置、服务器和介质
CN108681893A (zh) * 2018-05-07 2018-10-19 中国平安人寿保险股份有限公司 数据处理方法、装置、计算机设备及存储介质
CN108572877A (zh) * 2018-05-10 2018-09-25 厦门南讯软件科技有限公司 一种基于特征分组的并发消息处理方法
CN110968407A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 任务的执行方法、装置、存储介质及电子装置
CN110096510A (zh) * 2019-04-09 2019-08-06 上海车轮互联网服务有限公司 教练信息处理方法及装置
CN109905412B (zh) * 2019-04-28 2021-06-01 山东渔翁信息技术股份有限公司 一种网络数据并行加解密处理方法、装置和介质
CN109905412A (zh) * 2019-04-28 2019-06-18 山东渔翁信息技术股份有限公司 一种网络数据并行加解密处理方法、装置和介质
CN110515805A (zh) * 2019-08-30 2019-11-29 京信通信***(中国)有限公司 性能监测方法、装置、通信设备及计算机存储介质
CN112667368A (zh) * 2019-10-16 2021-04-16 北京京东乾石科技有限公司 一种任务数据处理方法和装置
CN112764892A (zh) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 管理进程的方法、设备和计算机程序产品

Also Published As

Publication number Publication date
CN105701257B (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
CN105701257A (zh) 数据处理方法和装置
CN108376118B (zh) 服务发布***、方法、设备及存储介质
US10108450B2 (en) Mechanism for SSDs to efficiently manage background activity with notify
US9405572B2 (en) Optimized resource allocation and management in a virtualized computing environment
US20150081978A1 (en) Dynamic Sizing of Memory Caches
US9058212B2 (en) Combining memory pages having identical content
EP3616055A1 (en) Cluster resource management in distributed computing systems
CN111324606B (zh) 数据分片的方法及装置
CN104102693A (zh) 对象处理方法和装置
US20220075757A1 (en) Data read method, data write method, and server
US20190042440A1 (en) Object storage system with multi-level hashing function for storage address determination
CN114090580A (zh) 数据处理方法、装置、设备、存储介质及产品
US8819239B2 (en) Distributed resource management systems and methods for resource management thereof
US11138178B2 (en) Separation of computation from storage in database for better elasticity
US10936192B2 (en) System and method for event driven storage management
CN111190719B (zh) 优化集群资源分配的方法、装置、介质及电子设备
CN113268329B (zh) 一种请求调度方法、装置及存储介质
CN112799824A (zh) 一种限流方法、装置、设备和存储介质
KR102332809B1 (ko) 가상 스트림 및 처리 에이전트를 이용한 스트림 기반 이벤트 처리 기법
EP3479256B1 (en) Fabric encapsulated resilient storage
CN111917573B (zh) 监控方法、监控***及计算设备
CN112230978A (zh) 一种多数据源动态切换方法、电子设备及存储介质
US11243979B1 (en) Asynchronous propagation of database events
US10474653B2 (en) Flexible in-memory column store placement
CN116737345A (zh) 分布式任务处理***及方法、装置、存储介质以及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211206

Address after: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, high tech Zone, Binhai New Area, Tianjin

Patentee after: 3600 Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230717

Address after: 1765, floor 17, floor 15, building 3, No. 10 Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: Beijing Hongxiang Technical Service Co.,Ltd.

Address before: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, high tech Zone, Binhai New Area, Tianjin

Patentee before: 3600 Technology Group Co.,Ltd.