线程池内任务共享主线程多级缓存方法、系统及设备技术方案

技术编号:30448048 阅读:26 留言:0更新日期:2021-10-24 18:41
本发明专利技术公开了一种线程池内任务共享主线程多级缓存方法、系统及设备。线程池内任务共享主线程多级缓存方法,包括:设置多级缓存查询方法;定义线程池,设置线程池内执行任务的方法;启动主线程,按照多级缓存查询方法将数据缓存到缓存中间件和本地;在主线程创建子任务,并提交到定义的线程池中,执行子任务,并从本地获取数据。线程池内任务共享主线程多级缓存系统,包括:定义设置模块,用于设置多级缓存查询方法;以及用于定义线程池,设置线程池内执行任务的方法;命令执行模块,用于启动主线程,按照多级缓存查询方法将数据缓存到缓存中间件和本地;以及用于在主线程创建子任务,并提交到定义的线程池中,执行子任务,并从本地获取数据。获取数据。获取数据。

【技术实现步骤摘要】
线程池内任务共享主线程多级缓存方法、系统及设备


[0001]本专利技术涉及计算机开发应用
,特别是涉及一种线程池内任务共享主线程多级缓存方法、系统及设备。

技术介绍

[0002]在开发应用系统中,为了更加快速地响应请求,提高系统的QPS,我们会使用很多的手段,比如说异步、缓存。而在一次请求又有异步的情况下,缓存往往需要借助缓存中间件来实现,但查询缓存中间件也是一次网络调用,而如果要使用本地缓存的话,需要同时维护本地缓存和缓存中间件数据的一致性,多机高QPS的情况下这个维护成本更高,效果会更差,编码难度不言而喻。
[0003]综上所述,现有技术中存在的主要问题是:在一次请求内,异步任务不能共享主线程任务的数据,造成重复的网络调用,系统处理能力变低。因此,亟需一种能够实现线程池内的任务可以共享主线程缓存,从而使得子线程的处理速度更快,减少数据库和缓存中间件的压力的方法。

技术实现思路

[0004]基于此,本专利技术的目的在于,提供一种能够实现线程池内的任务可以共享主线程缓存,从而使得子线程的处理速度更快,减少数据库和缓存中间件的压力的线程池内任务共享主线程多级缓存方法、系统及设备。
[0005]第一方面,本专利技术的线程池内任务共享主线程多级缓存方法,包括:设置多级缓存查询方法;定义线程池,设置线程池内执行任务的方法;启动主线程,按照多级缓存查询方法将数据缓存到缓存中间件和本地;在主线程创建子任务,并提交到定义的线程池中,执行子任务,并从本地获取数据。
[0006]本专利技术的线程池内任务共享主线程多级缓存方法通过设置多级缓存查询方法,定义线程池,设置线程池内执行任务的方法,启动主线程,按照多级缓存查询方法将数据缓存到缓存中间件和本地,在主线程创建子任务,并提交到定义的线程池中,执行子任务,并从本地获取数据,实现线程池内的任务可以共享主线程缓存,从而使得子线程的处理速度更快,减少数据库和缓存中间件的压力,解决了现有技术中在一次请求内,异步任务不能共享主线程任务的数据,造成重复的网络调用,系统处理能力变低的技术问题。
[0007]上述技术方案在一种实施方式中,所述设置多级缓存查询方法,包括:设置查询本地缓存为第一级查询,设置查询缓存中间件为第二级查询,设置查询数据库为第三级查询;设置首先执行第一级查询,若第一级查询命中,则查询终止;若第一级查询未命中,则设置执行第二级查询,若第二级查询命中,则查询终止;若第二级查询仍未命中,则设置执行第三级查询;
设置将第一级查询、或第二级查询、或第三级查询获取的数据依次缓存到缓存中间件和本地。
[0008]上述技术方案在一种实施方式中,所述设置首先执行第一级查询,包括:设置首先调用ttl.get()执行第一级查询。
[0009]上述技术方案在一种实施方式中,所述设置将第一级查询、或第二级查询、或第三级查询获取的数据依次缓存到缓存中间件和本地,包括:设置调用ttl.set()将第一级查询、或第二级查询、或第三级查询获取的数据依次缓存到缓存中间件和本地。
[0010]上述技术方案在一种实施方式中,所述设置线程池内执行任务的方法,包括:设置对入参Runnable或者Callable用ttl中的TtlRunnable或者TtlCallable进行包装。
[0011]上述技术方案在一种实施方式中,所述在主线程创建子任务,并提交到定义的线程池中,包括:在主线程创建子任务,并通过TtlRunnable或者TtlCallable对子任务包装,并提交到定义的线程池中。
[0012]上述技术方案在一种实施方式中,所述方法还包括:命令主线程清空本地缓存。
[0013]第二方面,本专利技术提供一种线程池内任务共享主线程多级缓存系统,包括:定义设置模块,用于设置多级缓存查询方法;以及用于定义线程池,设置线程池内执行任务的方法;命令执行模块,用于启动主线程,按照多级缓存查询方法将数据缓存到缓存中间件和本地;以及用于在主线程创建子任务,并提交到定义的线程池中,执行子任务,并从本地获取数据。
[0014]第三方面,本专利技术提供一种设备,包括:存储器,用于存储一个或多个程序;处理器,用于运行所述存储器中存储的所述程序,以实现如上述任一项所述的线程池内任务共享主线程多级缓存方法。
[0015]第四方面,本专利技术提供一种计算机可读存储介质,其存储有至少一个程序,当所述程序被处理器执行时,实现如上述任一项所述的线程池内任务共享主线程多级缓存方法。
[0016]相对于现有技术,本专利技术的线程池内任务共享主线程多级缓存方法、系统及设备通过设置多级缓存查询方法,定义线程池,设置线程池内执行任务的方法,启动主线程,按照多级缓存查询方法将数据缓存到缓存中间件和本地,在主线程创建子任务,并提交到定义的线程池中,执行子任务,并从本地获取数据,实现线程池内的任务可以共享主线程缓存,从而使得子线程的处理速度更快,减少数据库和缓存中间件的压力,解决了现有技术中在一次请求内,异步任务不能共享主线程任务的数据,造成重复的网络调用,系统处理能力变低的技术问题。
[0017]为了更好地理解和实施,下面结合附图详细说明本专利技术。
附图说明
[0018]图1是本专利技术的线程池内任务共享主线程多级缓存方法的示例性流程框图。
[0019]图2是本专利技术的线程池内任务共享主线程多级缓存方法的另一示例性流程框图。
[0020]图3设置多级缓存查询方法的示例性流程框图。
[0021]图4设置多级缓存查询方法的另一示例性流程框图。
[0022]图5是本专利技术的线程池内任务共享主线程多级缓存系统的示例性框图。
[0023]其中,图2和图4分别为对图1和图3的详细示例。
具体实施方式
[0024]以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的方法的例子。
[0025]在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0026]请参阅图1和图2。图1是本专利技术的线程池内任务共享主线程多级缓存方法的示例性流程框图。图2是本专利技术的线程池内任务共享主线程多级缓存方法的另一示例性流程框图。
[0027]第一方面,本专利技术的线程池内任务共享主线程多级缓存方法,该方法可具体通过管理设备执行,该方法包括:步骤101,设置多级缓存查询方法。
[0028]请进一步参阅图3和图4,在一种实施方式中,上述步骤101,所述设置多级缓存查询方法,包括:步骤1011,设置查询本地缓存为第一级查询,设置查询缓存中间件为第二级查询,设置查询数据库为第三级查询。
[0029]可选地,所述设置首先执行第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程池内任务共享主线程多级缓存方法,其特征在于,包括:设置多级缓存查询方法;定义线程池,设置线程池内执行任务的方法;启动主线程,按照多级缓存查询方法将数据缓存到缓存中间件和本地;在主线程创建子任务,并提交到定义的线程池中,执行子任务,并从本地获取数据。2.根据权利要求1所述的线程池内任务共享主线程多级缓存方法,其特征在于,所述设置多级缓存查询方法,包括:设置查询本地缓存为第一级查询,设置查询缓存中间件为第二级查询,设置查询数据库为第三级查询;设置首先执行第一级查询,若第一级查询命中,则查询终止;若第一级查询未命中,则设置执行第二级查询,若第二级查询命中,则查询终止;若第二级查询仍未命中,则设置执行第三级查询;设置将第一级查询、或第二级查询、或第三级查询获取的数据依次缓存到缓存中间件和本地。3.根据权利要求2所述的线程池内任务共享主线程多级缓存方法,其特征在于,所述设置首先执行第一级查询,包括:设置首先调用ttl.get()执行第一级查询。4.根据权利要求3所述的线程池内任务共享主线程多级缓存方法,其特征在于,所述设置将第一级查询、或第二级查询、或第三级查询获取的数据依次缓存到缓存中间件和本地,包括:设置调用ttl.set()将第一级查询、或第二级查询、或第三级查询获取的数据依次缓存到缓存中间件和本地。5.根据权利要求1所述的线程池内任务共享主线程多级缓存方法,其特征在于,所述设置线程池内执行任务的方法...

【专利技术属性】
技术研发人员:张坚欣侯剑华邹方勇
申请(专利权)人:广州嘉为科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1