日志存储方法、装置及计算机可读存储介质与流程

文档序号:37721720发布日期:2024-04-23 11:57阅读:11来源:国知局
日志存储方法、装置及计算机可读存储介质与流程

本技术涉及数据处理领域,尤其涉及日志存储方法、装置及计算机可读存储介质。


背景技术:

1、服务器在收到用户设备的请求消息后,通常是基于请求生成待存储的日志,然后通过单线程将待存储的日志存储至本地,存储完毕后,才会向用户设备返回响应消息。

2、然而,在请求消息的数量较多的情况下,该方案在上一个日志存储完毕后,才会对下一个日志进行存储任务,会出现日志存储阻塞的情况,进而使得用户设备在发送请求消息后,需要较长的时间才能接收到响应消息,使得用户体验较差。


技术实现思路

1、本技术提供一种日志存储方法、装置及计算机可读存储介质,能够在请求消息的数量较多的情况下,减少用户设备等待响应消息的时长,提升用户体验。

2、为达到上述目的,本技术采用如下技术方案:

3、第一方面,提供了一种日志存储方法,所述方法包括:获取待存储的多个日志集合;所述日志集合包括至少一个日志;针对每个日志集合,调用多个线程执行存储任务,确定所述日志集合中的日志的状态为第一状态标识;所述存储任务用于存储所述日志集合中的日志,所述存储任务包括多个子存储任务,一个线程用于执行一个子存储任务,所述第一状态标识用于指示所述日志存储完毕,所述多个线程之间具有异步关系;向目标日志对应的用户设备发送请求消息的响应消息;所述目标日志为所述日志集合中的任意一个日志,所述目标日志为基于所述用户设备的所述请求消息确定的。

4、基于该方案,与现有的在上一个日志存储完毕后,才会对下一个日志进程存储任务的方案相比,本技术的方案通过获取待存储的多个日志集合,然后,针对每个日志集合,调用多个线程执行存储任务,确定日志的状态为第一状态标识,最后,向存储完毕的目标日志对应的用户设备发送响应消息。由于多个线程之间具有异步关系,一个线程执行一个子存储任务,可以使多个子存储任务同时进行,不必等待上一个日志存储完毕,就能够处理下一个日志,在待存储的日志的数量较多的情况下,可以减少待存储的日志的存储时长,进而减少了用户设备等待响应消息的时长,提升了用户体验。

5、结合第一方面,在第一方面的某些实施方式中,所述调用多个线程执行存储任务,确定所述日志集合中的日志的状态为第一状态标识,包括:针对所述日志集合中的日志,调用第一线程执行第一子存储任务,得到第一队列;所述第一队列包括所述日志集合中的日志;针对所述第一队列,调用第二线程执行第二子存储任务,得到第二队列;所述第二队列包括所所述第一队列中的日志,所述第二队列中日志的标识为第二状态标识,所述第二状态标识用于指示所述第二队列中的日志已写入本地;针对所述第二队列,调用第三线程执行第三子存储任务,得到第三队列;所述第三队列包括所述第二队列中的日志,所述第三队列中日志的标识为第三状态标识,所述第二状态标识用于指示头文件已基于所述第三队列中的日志更新完成;针对所述第三队列,调用第四线程执行第四子存储任务,得到第四队列;所述第四队列包括所述第三队列中的日志,所述第四队列中日志的标识为所述第一状态标识。

6、基于该方案,通过针对日志集合中的日志,调用第一线程执行第一子存储任务,得到第一队列,然后,针对第一队列,调用第二线程执行第二子存储任务,得到第二队列,然后,针对第二队列,调用第三线程执行第三子存储任务,得到第三队列,最后,针对第三队列,调用第四线程执行第四子存储任务,得到第四队列,由于第四队列中日志的标识为第一状态标识,能够实现调用多个线程执行存储任务,确定日志的状态为第一状态标识的方案。

7、结合第一方面,在第一方面的某些实施方式中,在所述日志集合中的日志的数量为多个的情况下,所述针对所述第一队列,调用第二线程执行第二子存储任务,得到第二队列,包络:针对所述第一队列,将所述第一队列中的多个日志合并为至少一个合并日志;所述合并日志的数量小于所述第一队列中日志的数量;针对每个合并日志,调用所述第二线程执行所述第二子存储任务,得到所述第二队列。

8、基于该方案,在日志集合中的日志的数量为多个的情况下,通过针对第一队列,将第一队列中的多个日志合并为至少一个合并日志,然后,针对每个合并日志,调用第二线程执行第二子存储任务,得到第二队列,由于将多个日志合并为了至少一个合并日志,合并日志的数量小于第一队列中日志的数量,可以减少后续线程需要处理的日志的数量,从而进一步减少待存储的日志的存储时长,减少用户设备等待响应消息的时长,提升用户体验。

9、结合第一方面,在第一方面的某些实施方式中,在针对所述日志集合中的日志,调用第一线程执行第一子存储任务,得到第一队列之后,所述方法还包括:生成初步消息;所述初步消息用于指示所述请求消息已被开始处理;向所述用户设备发送所述初步消息。

10、基于该方案,在针对日志集合中的日志,调用第一线程执行第一子存储任务,得到第一队列之后,通过生成用于指示请求消息已被开始处理的初步消息,然后,向用户设备发送初步消息,通过使用户设备得知请求消息已被开始处理,避免用户长时间处于未知当中,提升用户体验。

11、第二方面,提供了一种日志存储装置用于实现上述第一方面的日志存储方法。该日志存储装置包括实现上述方法相应的模块、单元、或手段(means),该模块、单元、或means可以通过硬件实现,软件实现,或者通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块或单元。

12、结合第二方面,在第二方面的某些实施方式中,所述日志存储装置包括:收发模块和处理模块;所述收发模块,用于获取待存储的多个日志集合;所述日志集合包括至少一个日志;所述处理模块,用于针对每个日志集合,调用多个线程执行存储任务,确定所述日志集合中的日志的状态为第一状态标识;所述存储任务用于存储所述日志集合中的日志,所述存储任务包括多个子存储任务,一个线程用于执行一个子存储任务,所述第一状态标识用于指示所述日志存储完毕,所述多个线程之间具有异步关系;所述收发模块,还用于向目标日志对应的用户设备发送请求消息的响应消息;所述目标日志为所述日志集合中的任意一个日志,所述目标日志为基于所述用户设备的所述请求消息确定的。

13、结合第二方面,在第二方面的某些实施方式中,所述处理模块,具体用于:针对所述日志集合中的日志,调用第一线程执行第一子存储任务,得到第一队列;所述第一队列包括所述日志集合中的日志;针对所述第一队列,调用第二线程执行第二子存储任务,得到第二队列;所述第二队列包括所所述第一队列中的日志,所述第二队列中日志的标识为第二状态标识,所述第二状态标识用于指示所述第二队列中的日志已写入本地;针对所述第二队列,调用第三线程执行第三子存储任务,得到第三队列;所述第三队列包括所述第二队列中的日志,所述第三队列中日志的标识为第三状态标识,所述第二状态标识用于指示头文件已基于所述第三队列中的日志更新完成;针对所述第三队列,调用第四线程执行第四子存储任务,得到第四队列;所述第四队列包括所述第三队列中的日志,所述第四队列中日志的标识为所述第一状态标识。

14、结合第二方面,在第二方面的某些实施方式中,在所述日志集合中的日志的数量为多个的情况下,所述处理模块,还用于针对所述第一队列,调用第二线程执行第二子存储任务,得到第二队列,包络:针对所述第一队列,将所述第一队列中的多个日志合并为至少一个合并日志;所述合并日志的数量小于所述第一队列中日志的数量;针对每个合并日志,调用所述第二线程执行所述第二子存储任务,得到所述第二队列。

15、结合第二方面,在第二方面的某些实施方式中,在针对所述日志集合中的日志,调用第一线程执行第一子存储任务,得到第一队列之后,所述收发模块,还用于:生成初步消息;所述初步消息用于指示所述请求消息已被开始处理;向所述用户设备发送所述初步消息。

16、第三方面,提供了一种日志存储装置,包括:至少一个处理器、用于存储处理器可执行的指令的存储器;其中,处理器被配置为执行指令,以实现如第一方面及其任一种可能的实施方式所提供的方法。

17、第四方面,提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由日志存储装置的处理器执行时,使得日志存储装置能够执行如第一方面及其任一种可能的实施方式所提供的方法。

18、第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面及其任一种可能的实施方式所提供的方法。

19、第六方面,提供了一种芯片系统,包括:处理器和接口电路;接口电路,用于接收计算机程序或指令并传输至处理器;处理器用于执行计算机程序或指令,以使该芯片系统执行如上述第一方面及其任一种可能的实施方式所提供的方法。

20、其中,第二方面至第六方面中任一种实施方式所带来的技术效果可参见上述第一方面不同实施方式所带来的技术效果,在此不再赘述。

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