本发明专利技术公开了一种数据处理方法和装置。该数据处理方法包括:以特定线程消费消息队列中的任务失败数据,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;以及将所消费的任务失败数据中的至少一部分写入日志文件系统。上述数据处理方法和装置,通过将任务失败数据从消息队列中转存到日志文件系统中,使得任务失败数据不会被长期留存在消息队列中,这样可以有效缓解消息队列的存储压力。
【技术实现步骤摘要】
本专利技术涉及计算机
,具体涉及一种数据处理方法和装置。
技术介绍
随着计算机技术的飞速发展,在许多应用领域,存在越来越多的需要管理的数据,诸如用户信息数据、系统日志数据等。通常采用数据库对这些数据进行管理。在通过对数据库中的数据进行操作来完成某种任务时,如果操作失败的话会产生任务失败数据。例如,如果期望为某个用户增加经验值,则需要更新数据库中存储的该用户的经验值数据。在更新用户的经验值数据时,如果由于某些原因导致更新操作失败,也就是增加经验值的任务失败,则可以产生一条关于为该用户增加经验值的任务失败的记录,该记录即上述任务失败数据。通常将任务失败数据写入消息队列中,消费者会不断轮询该消息队列,从消息队列中取出并处理任务失败数据。正常情况下失败任务的数量比较少,但是在数据库出现故障,无法进行数据写入操作的情况下,会产生大量任务失败数据。大量的任务失败数据涌入消息队列会给消息队列带来巨大压力,很有可能导致消息队列崩溃。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种至少部分地解决上述问题的数据处理方法和装置。根据本专利技术的一个方面,提供一种数据处理方法。该数据处理方法包括:以特定线程消费消息队列中的任务失败数据,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;以及将所消费的任务失败数据中的至少一部分写入日志文件系统。根据本专利技术的另一个方面,提供一种数据处理装置。该数据处理装置包
括消费模块和写入模块。消费模块用于以特定线程消费消息队列中的任务失败数据,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务。写入模块用于将所消费的任务失败数据中的至少一部分写入日志文件系统。根据本专利技术实施例的数据处理方法和装置,通过将任务失败数据从消息队列中转存到日志文件系统中,使得任务失败数据不会被长期留存在消息队列中,这样可以有效缓解消息队列的存储压力,避免在数据库出现故障时大量任务失败数据堆积在消息队列中,进而可以避免消息队列崩溃。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出根据本专利技术一个实施例的数据处理方法的流程示意图;图2示出根据本专利技术另一个实施例的数据处理方法的流程示意图;图3示出根据本专利技术另一个实施例的数据处理方法的流程示意图;以及图4示出根据本专利技术一个实施例的数据处理装置的示意性框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。根据本专利技术的一个方面,提供一种数据处理方法。图1示出根据本专利技术一个实施例的数据处理方法100的流程示意图。如图1所示,数据处理方法100包括以下步骤。在步骤S110,以特定线程消费消息队列中的任务失败数据,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务。消息队列可以存储任务失败数据。任务失败数据可以是在针对数据库进行数据操作时任务失败所产生的记录。例如,如果为用户增加经验值的任务失败,即对数据库中存储的该用户的经验值数据的更新没有成功,则可以生成任务失败数据。可以将这些任务失败数据写入消息队列。示例性地,所述消息队列可以设置于内存中。内存的读写速度快,响应时间短,非常适于进行数据的临时缓存和中转,因此可以使用内存存储消息队列。可以利用特定线程在消息队列中消费任务失败数据。特定线程可以是消费者程序的线程(可以称为消费者线程),其可以预先分配给消息队列。在步骤S120,将所消费的任务失败数据中的至少一部分写入日志文件系统。在步骤S120中,可以将上文所述的消费者程序视作生产者,将日志文件系统视作消费者,日志文件系统可以从消费者程序获取任务失败数据并且可以存储所获取的任务失败数据。示例性地,日志文件系统设置于本地硬盘中。硬盘是非易失性存储器,其存储容量大,存储稳定,数据不易丢失,因此可以使用本地硬盘作为载体存储任务失败数据。根据本专利技术实施例的数据处理方法,通过将任务失败数据从消息队列中转存到日志文件系统中,使得任务失败数据不会被长期留存在消息队列中,这样可以有效缓解消息队列的存储压力,避免在数据库出现故障时大量任务失败数据堆积在消息队列中,进而可以避免消息队列崩溃。图2示出根据本专利技术另一个实施例的数据处理方法200的流程示意图。图2所示的数据处理方法200的步骤S210和S230分别与图1所示的数据处理方法100的步骤S110和S120相对应。本领域技术人员根据图1和上文的描述可以理解图2中的上述步骤,为了简洁,在此不再赘述。根据本实施例,
在步骤S230之前,数据处理方法200可以进一步包括步骤S220。在步骤S220,重新执行所述所消费的任务失败数据所指示的失败任务。在消费者程序消费消息队列中的任务失败数据之后,其可以尝试重新执行所消费的任务失败数据所指示的失败任务。例如,如果失败任务是为某用户增加经验值,则可以尝试重新访问数据库,以对数据库中存储的该用户的经验值数据进行更新。如果此时数据库处于正常状态,则可以成功完成为该用户增加经验值的任务,如果此时数据库处于异常状态,则为该用户增加经验值的任务可能再次执行失败。在将任务失败数据写入日志文件系统之前,首先尝试重新执行失败任务,对于重新执行成功的失败任务,可以不再将其对应的任务失败数据写入日志文件系统,以节省存储资源。对于重新执行失败的失败任务,可以将其对应的任务失败数据写入日志文件系统,用于随后处理。示例性地,上述步骤S230可以包括:将所述所消费的任务失败数据中的、重新执行失败的次数达到次数阈值的失败任务所对应的任务失败数据写入日志文件系统。可以预先设定次数阈值。次数阈值可以是任何合适的值,其可以根据需要而定,本专利技术不对此进行限制。例如,次数阈值可以大于或等于3。例如,可以多次尝试重新执行失败任务,对于在第1次重新执行时成功的失败任务或者在第1次重新执行时失败并在第2次重新执行时成功的失败任务,可以不将其对应的任务失败数据写入日志文件系统,而对于连续重新执行3次仍然无法成功的失败任务,可以将其对应的任务失败数据写入日志文件系统。图3示出根据本专利技术另一个实施例的数据处理方法300的流程示意图。图3所示的数据处理方法300的步骤S310和S320分别与图1所示的数据处理方法100的步骤S110和S120相对应。本领域技术人员根据图1和上文的描述可以理解图3中的上述步骤,为了简洁,在此不再赘述。根据本实施例,在步骤S320之后,数据处理方法300可以进一步包括步骤S330和S340。在步骤S330,读取日志文件系统中所存储的任务失败数据。在将任务失败数据存储到日志文件系统中之后,可本文档来自技高网...
【技术保护点】
一种数据处理方法,包括:以特定线程消费消息队列中的任务失败数据,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;以及将所消费的任务失败数据中的至少一部分写入日志文件系统。
【技术特征摘要】
1.一种数据处理方法,包括:以特定线程消费消息队列中的任务失败数据,所述任务失败数据用于指示与数据库中的数据操作相关的失败任务;以及将所消费的任务失败数据中的至少一部分写入日志文件系统。2.如权利要求1所述的数据处理方法,其特征在于,在所述将所消费的任务失败数据中的至少一部分写入日志文件系统之前,所述数据处理方法进一步包括:重新执行所述所消费的任务失败数据所指示的失败任务。3.如权利要求2所述的数据处理方法,其特征在于,所述将所消费的任务失败数据中的至少一部分写入日志文件系统包括:将所述所消费的任务失败数据中的、重新执行失败的次数达到次数阈值的失败任务所对应的任务失败数据写入所述日志文件系统。4.如权利要求1至3任一项所述的数据处理方法,其特征在于,在所述将所消费的任务失败数据中的至少一部分写入日志文件系统之后,所述数据处理方法进一步包括:读取所述日志文件系统中所存储的任务失败数据;以及重新执行所读取的任务失败数据所指示的失败任务。5.如权利要求4所述的数据处理方法,其特征在于,在所述读取所述日志文件系统中所存储的任务失败数据之前,所述数据处理方法进一步包括:监测所述数据库的运行状态;所述读取所述日志文件系统中所存储的任务失败数据包括:当所述数据库的运行状态从异常状态转变为正常状态时,读取所述日志文件系统中所存储的任务失败数据。6.如权利要求4...
【专利技术属性】
技术研发人员:郭军,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。