一种批量日志保存方法及装置与流程

文档序号:11950558阅读:238来源:国知局
一种批量日志保存方法及装置与流程

本发明涉及软件开发技术领域,更具体的涉及一种批量日志保存方法及装置。



背景技术:

在网络行为分析产品中,当接收到批量日志后,需要进行存储处理,一般存储处理按照接收到日志的时间先后顺序为准,然后依次存储到设定的数据库内。

现有技术中,当接收到的批量日志数据量不大时,网络行为分析产品可以对接收到的批量日志,按照正常顺序存储到设定到数据库内;而当接收到的批量日志数据量很大时,网络行为分析产品若以接收到的日志的先后顺序为准,依次将批量日志按照正常顺序依次存储到设定的数据库内时,则会出现以下问题:1)、网络行为分析产品处理日志的速度比接收日志速度慢时,导致大量接收到的日志不能及时存储到设定的数据库内,可能会导致内存溢出,致使接收到的日志丢失的问题;2)、新产生的日志不能得到及时的处理,而需要延迟一定的时间,才能在用户交互界面上展现出来,导致信息的及时性不高的问题;3)、网络行为分析产品接收日志和将接收到的日志存储到设定的数据库的行为没有分开,从而会同时占用大量内存和CPU资源,导致系统出现性能瓶颈的问题。

综上所述,现有的网络行为分析产品对接收到的批量日志进行保存时,存在日志容易丢失,信息的及时性不高,且容易导致系统出现性能瓶颈的问题。



技术实现要素:

本发明实施例提供一种批量日志保存方法及装置,用于解决现有的网络行为分析产品对接收到的批量日志进行保存时,存在日志容易丢失,信息的及时性不高,且容易导致系统出现性能瓶颈的问题。

本发明实施例提供一种批量日志保存方法,包括:

建立第一任务和第二任务,所述第一任务接收到信息日志时,将所述信息日志写入预设的缓冲区;

所述第二任务确定所述缓冲区内包括的全部所述信息日志写入所述缓冲区的写入时间,将所述写入时间与当前时间的时间差小于第一阈值的所述信息日志标记为第一信息日志,当所述第一信息日志的数量超过第二阈值时,将所述第一信息日志存储至数据库。

进一步地,所述将所述信息日志写入预设的缓冲区时,还包括:记录每个所述信息日志写入所述缓冲区的所述写入时间。

进一步地,所述讲所述第一信息日志存储至数据库之后,还包括:

通过轮询的方法,确定所述第一信息日志已经成功存储至数据库,并删除所述缓冲区内的第一信息日志。

进一步地,所述缓冲区至少包括以下实现方式:

以文件形式存储在物理硬盘的固定位置;或者

采用自定义数据结构保存在内存中;或者

采用Redis内存数据库进行存储。

本发明实施例还提供一种批量日志保存装置,包括:

写入单元,用于建立第一任务和第二任务,所述第一任务接收到信息日志时,将所述信息日志写入预设的缓冲区;

存储单元,用于所述第二任务确定所述缓冲区内包括的全部所述信息日志写入所述缓冲区的写入时间,将所述写入时间与当前时间的时间差小于第一阈值的所述信息日志标记为第一信息日志,当所述第一信息日志的数量超过第二阈值时,将所述第一信息日志存储至数据库。

进一步地,所述写入单元还用于:记录每个所述信息日志写入所述缓冲区的所述写入时间。

进一步地,所述存储单元还用于:

通过轮询的方法,确定所述第一信息日志已经成功存储至数据库,并删除所述缓冲区内的第一信息日志。

进一步地,所述缓冲区至少包括以下实现方式:

以文件形式存储在物理硬盘的固定位置;或者

采用自定义数据结构保存在内存中;或者

采用Redis内存数据库进行存储。

本发明实施例中,提供一种批量日志保存方法及装置,包括建立第一任务和第二任务,所述第一任务接收到信息日志时,将所述信息日志写入预设的缓冲区;所述第二任务确定所述缓冲区内包括的全部所述信息日志写入所述缓冲区的写入时间,将所述写入时间与当前时间的时间差小于第一阈值的所述信息日志标记为第一信息日志,当所述第一信息日志的数量超过第二阈值时,将所述第一信息日志存储至数据库。在本发明实施例中,将现有技术中的接收日志的程序拆分成两个独立的任务,一个负责接收日志,另一个负责处理日志,通过查询和获取缓冲区内的最新信息日志,将获取到的信息日志存储到数据库。采用上述方法,接收信息日志时,可以将信息日志先写入缓冲区,确保信息日志不会丢失,同时,在将缓冲区内的信息日志存储到数据库上,最新写入缓冲区内的信息日志具有优先处理的特性,从而提高了信息的及时性,避免了大批量数据存储至数据库时,系统容易出现性能瓶颈的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种批量日志保存方法流程示意图;

图2为本发明实施例提供的一种批量日志保存装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例所涉及的术语:

缓冲区,是设备之间进行沟通的中间地带,用于协调不同设备之间运行速度的差异,它通常独立于设备而存在。

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。

图1示例性的示出了本发明实施例提供的一种批量日志保存方法流程示意图,该方法至少可以应用于软件开发中。

如图1所示,本发明实施例提供的一种批量日志保存方法,包括以下步骤:

步骤101,建立第一任务和第二任务,所述第一任务接收到信息日志时,将所述信息日志写入预设的缓冲区;

步骤102,所述第二任务确定所述缓冲区内包括的全部所述信息日志写入所述缓冲区的写入时间,将所述写入时间与当前时间的时间差小于第一阈值的所述信息日志标记为第一信息日志,当所述第一信息日志的数量超过第二阈值时,将所述第一信息日志存储至数据库。

需要说明的是,本发明实施例中,执行主体可以信息日志服务器。

需要说明的是,本发明实施例中,第一任务,第二任务,可以同时是第一线程,第二线程;也可以同时是第一进程,第二进程;在本发明实施例中,对第一任务和第二任务的具体形式不做限定。

需要说明的是,缓冲区至少可以包括以下实现方式:1)以文件形式存储在物理硬盘的固定位置;2)采用采用自定义数据结构保存在内存中;3)采用Redis等内存数据库进行存储。在本发明实施例中,对缓冲区的实现方法不做具体的限定。

在步骤101中,信息日志服务器在处理端建立第一任务和第二任务,其中,第一任务负责接收信息日志,而第二任务负责处理接收到的信息日志。

具体地,第一任务在确认接收到信息日志之前,需要判断是否接收到信息日志,在本发明实施例中,第一任务可以按照设定时间,判断是否接收到信息日志,或者根据是否接收到触发信号,确定是否接收到信息日志,其中,触发信号时信息日志携带的某个信号。在本发明实施例中,对第一任务判断是否接收到信息日志时所采用的判断方法不做具体的限定。

进一步地,当第一任务根据判断方法,确定接收到信息日志之后,则第一任务根据接收到的信息日志,将信息日志写入预设的缓冲区内。在实际应用中,由于缓冲区用于协调不同设备之间运行速度的差异,独立于设备而存在,因此,在本发明实施例中,在缓冲区内写入信息日志,即可以确保信息日志不会丢失,也不会增加内存的运行负荷。

在实际应用中,当第一任务将接收到的信息日志写入缓冲区之后,第一任务可以进行下一轮的处理,即,继续根据判断方法,判断是否接收到新的信息日志。

在步骤102中,当所述第二任务确定所述缓冲区内包括的全部所述信息日志写入所述缓冲区时间,将确定的时间和当前时间进行比较,从缓冲区内选择信息日志写入时候与当前时间时间差小于第一阈值的信息日志为第一信息日志,当第一信息日志的数量超过了第二阈值时,将第一信息日志存储到数据库内。

需要说明的是,写入缓冲区内的信息日志都携带有每个信息日志写入缓冲区的时间。其中,信息日志写入缓冲区内对应的写入时间,可以是第一任务增加到信息日志内的,也可以是缓冲区自动添加的,在本发明实施例中,对信息日志写入缓冲区内对应的写入时间的添加过程,不做具体的限定。

需要说明的是,第一阈值是根据系统处理信息日志的平均时间确定;第二阈值是根据系统处理信息日志的能力确定的。在本发明实施例中,对第一阈值的第二阈值的具体范围不做限定。

在本发明实施例中,当第二任务将第一信息日志存储至数据库之后,还需要根据轮询的方法,依次根据存储至数据库的第一信息日志,将缓冲区内与当前时间存储至数据库内的第一信息日志对应的信息日志删除,采用上述方法,可以减轻缓冲区内的存储量。进一步地,当第二任务将缓冲区内与存储至数据库内的第一信息日志对应的信息日志删除之后,第二任务可以进入下一轮处理,即,继续根据设定时间查询缓冲区,根据第一阈值,第二阈值判断缓冲区内是否有第一信息日志,并将确定的第一信息日志存储至数据库。

综上所述,本发明实施例提供的一种批量日志保存方法,将现有技术中的接收日志的程序拆分成两个独立的任务,一个负责接收日志,另一个负责处理日志,通过查询和获取缓冲区内的最新信息日志,将获取到的信息日志存储到数据库。采用上述方法,接收信息日志时,可以将信息日志先写入缓冲区,确保信息日志不会丢失,同时,在将缓冲区内的信息日志存储到数据库上,最新写入缓冲区内的信息日志具有优先处理的特性,从而提高了信息的及时性,避免了大批量数据存储至数据库时,系统容易出现性能瓶颈的问题。

基于同一发明构思,本发明实施例提供了一种批量日志保存装置,由于该装置解决技术问题的原理与一种批量日志保存方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图2为本发明实施例提供的一种批量日志保存装置结构示意图,如图2所示,该装置包括写入单元20和存储单元21。

写入单元20,用于建立第一任务和第二任务,所述第一任务接收到信息日志时,将所述信息日志写入预设的缓冲区;

存储单元21,用于所述第二任务确定所述缓冲区内包括的全部所述信息日志写入所述缓冲区的写入时间,将所述写入时间与当前时间的时间差小于第一阈值的所述信息日志标记为第一信息日志,当所述第一信息日志的数量超过第二阈值时,将所述第一信息日志存储至数据库。

进一步地,所述写入单元20还用于:记录每个所述信息日志写入所述缓冲区的所述写入时间。

进一步地,所述存储单元21还用于:

通过轮询的方法,确定所述第一信息日志已经成功存储至数据库,并删除所述缓冲区内的第一信息日志。

进一步地,所述缓冲区至少包括以下实现方式:

以文件形式存储在物理硬盘的固定位置;或者

采用自定义数据结构保存在内存中;或者

采用Redis等内存数据库进行存储。

应当理解,以上确定火蔓延速度装置包括的单元仅为根据该设备装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的一种批量日志保存装置所实现的功能与上述实施例提供的一种批量日志保存方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例一中已做详细描述,此处不再详细描述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1