一种数据缓存方法与流程

文档序号:16916474发布日期:2019-02-19 19:00阅读:190来源:国知局
一种数据缓存方法与流程

本发明涉及网络数据通信技术领域,具体涉及一种数据缓存方法。



背景技术:

随着网络信息技术的发展和用户对互联网设备的需求日益增多,计算机系统需要处理的数据量也日益增加。计算机通过执行软件中指定的业务,从磁盘或者内存中读取数据,并生成用户需要的数据,通过客户端软件提供给用户使用。当所需处理的数据量较大,或者计算所需要的流程比较复杂时,程序需要较多的时间才能够将数据分析的结果反馈给客户端,造成数据响应的延迟。

为了优化客户端交互效果,降低数据延迟到达产生的不良体验,同时降低在高并发请求的情形下,软件在同一时刻反复执行相同的运算业务对计算机系统资源产生的过度占用,通常需要采用一种数据缓存的方法,将计算好的数据结果进行临时存储,并在客户端请求数据时可以实时返回给客户端。



技术实现要素:

本发明的目的在于克服现有技术中存在的问题,提供一种数据缓存方法,它可以实现通过守护进程的方式避免服务端直接调用业务程序,而通过判断缓存数据文件获取客户端真实需要的数据,这样首先可以解决业务程序阻塞导致客户端请求数据缓慢的问题,其次可以解决高并发的情况下,业务程序反复执行相同业务导致系统资源浪费的问题,通过对守护进程和缓存数据的控制,提高实时数据的利用率和客户端交互体验效果。

为实现上述技术目的,达到上述技术效果,本发明是通过以下技术方案实现的:

一种数据缓存方法,包括以下步骤:

步骤1、启动业务守护进程:所述守护进程常驻系统运行,按照启动指令传入的频率参数,控制执行指定的数据分析业务进程,业务进程执行结束后,接收执行的结果,在执行结果数据中,插入时间戳序列参数,并将数据序列化,如果未初始化缓存数据队列,先初始化缓存数据队列,如果已初始化缓存数据队列,将序列化数据推进缓存数据队列尾部,如果缓存数据队列总长度超过了预制的缓存数据最大长度,则从数据队列的头部推出最后一条数据;

步骤2、将缓存数据持久化到磁盘文件中;

步骤3、服务端进程接收到客户端数据请求业务时,从磁盘文件中读取数据,当磁盘文件不存在时,认为守护进程未初始化或者初始化失败,服务端进程发出启动守护进程指令,并自主执行业务进程,获取数据返回客户端,完成请求生命周期,当磁盘文件存在时,从磁盘文件的数据队列中读取队列尾部最新的一条数据,获取数据中由上述守护进程插入的时间戳序列参数,并与当前时间参数进行比较,当时间差值在用户所期望的最小差值范围内时,将结果返回给客户端,完成请求的生命周期,当时间差值超过了系统配置的最大时间差值时,服务端进程对操作系统中业务守护进程的执行状态进行检查;

步骤4、当检查到业务守护进程未启动,则启动业务守护进程,并自主执行业务进程,获取数据返回客户端,完成请求生命周期。

本发明的有益效果:通过利用守护进程控制业务进程和服务端进程的执行,利用队列数据后进先出的方式和进程参数配置的方式,提高业务进程的执行效率。当数据总条数超过了阈值的最大条目数时,程序将队列头部的数据移除队列,避免缓存数据文件过大占用额外的磁盘空间,降低io使用率,提高服务端进程的读取效率。

附图说明

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

图1为本发明实施例的流程示意图。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

如图1所示的一种数据缓存方法,包括如下步骤:

步骤1:软件服务端进程接收到客户端进程的数据请求,服务端进程首先查询系统磁盘中指定的缓存文件是否存在,如果缓存文件不存在,说明守护进程没有运行,此时首先启动守护进程,然后自主执行一次业务进程,获取业务数据,并完成服务端请求周期;

步骤2:如果判断缓存文件存在,则从磁盘中读取缓存文件,并从数据队列的尾部获取最新的一条数据,反序列化之后,将此条数据和当前时间戳数据进行比较,如果比较的结果大于设置的最大时间差值,说明缓存文件数据为能够即时更新,此时执行启动守护进程,然后自主执行一次业务进程,获取业务数据,并完成服务端请求周期;

步骤3:启动守护进程,守护进程的启动有多种方式,支持不同程序不同终端进行调度,本实施例中,守护进程可以由用户进行调度,也可以由服务端软件进行调度,守护进程启动后,根据指定的业务需求参数,执行特定的业务进程,守护进程可以在操作系统中常驻运行,当守护进程接收到启动指令后,首先判断自身是否已经在运行,如果守护进程已经运行,则不再创建新的进程。如果守护进程未运行,则启动进程,并将自身的进程id存储在指定的存储空间中,供进程判断自身的运行状态,当守护进程接收到结束指令时,守护进程结束自身的同时,也会销毁自身进程id的存储状态;

步骤4:守护进程读取缓存文件,并反序列化获取缓存数据队列,如果缓存文件不存在,则创建新的缓存数据队列;

步骤5:守护进程执行指定的业务进程,并获取数据,在获取的数据中,插入当前时间戳,序列化之后保存到缓存数据队列的尾部;

步骤6:判断数据队列的总长度是否超过了指定的队列最大长度限制,如果超过了队列最大长度限制,则删除数据队列头部最后一条数据。

步骤7:将内存中数据队列进行序列化,并将数据写入磁盘缓存文件中。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。



技术特征:

技术总结
本发明涉及网络数据通信技术领域,具体涉及一种数据缓存方法,包括以下步骤:程序判断缓存文件是否存在,如果不存在启动守护进程,如果存在判断队列尾部最新数据是否满足条件,如果不满足条件则启动守护进程,并且执行业务进程,获取数据并结束,守护进程读取缓存文件到内存中,执行业务进程获取数据,并将得到的数据插入时间戳,存储到缓存数据队列的尾部,对缓存数据序列化之后,将缓存数据保存到缓存文件中。本发明通过利用守护进程和缓存数据队列提高了请求响应的速度和业务进程的使用效率,节约系统运算性能和磁盘空间。

技术研发人员:周先东;崔杰;陈贵明;孟彦;朱静轩
受保护的技术使用者:中新网络信息安全股份有限公司
技术研发日:2018.09.03
技术公布日:2019.02.19
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1