[发明专利]一种高可用线程池切换方法及装置有效
申请号: | 202210972026.7 | 申请日: | 2022-08-15 |
公开(公告)号: | CN115080247B | 公开(公告)日: | 2022-11-04 |
发明(设计)人: | 童跃;张学亮;唐华 | 申请(专利权)人: | 科来网络技术股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 成都行之智信知识产权代理有限公司 51256 | 代理人: | 宋海霞 |
地址: | 610000 四川省成都市中国(四川)自由贸易试验*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 可用 线程 切换 方法 装置 | ||
本发明公开了一种高可用线程池切换方法及装置,包括:从动态线程池工厂获取主线程池,并检测主线程池的状态;根据主线程池的状态,切换至不同的线程池执行新接收的任务,包括:当主线程池的状态为确定阻塞状态时,则从主线程池切换至备用线程池为新接收的任务提供服务,同时启动主线程池脏任务识别机制进行脏任务识别,并将识别出的脏任务置于脏任务资源受限线程池中执行;当脏任务识别完成后,开启定时任务;根据定时任务检测主线程池的最新状态,如果主线程池的最新状态为恢复完成状态,则由备用线程池切换至原主线程池为新接收的任务提供服务。本发明能够解决当多个任务共用一个线程池时,其中某个任务耗时拖延,从而导致整体卡顿的问题。
技术领域
本发明涉及数据传输及线程池切换技术领域,具体涉及一种高可用线程池切换方法及装置。
背景技术
现有的线程池切换方法主要包括两类:第一类方法普遍侧重于识别环境的变化,动态设置线程池的参数,调大以适应大任务量,调小以节约资源,现有的线程池相关专利如:“CN202110343860.5 线程池调节方法、装置、存储介质及电子设备”、“CN201810990940.8 一种线程池优化方法及系统”、“CN202110838179.8 一种用于线程池参数动态设置的方法、系统及设备”。
第二类方法预置优先级方式,给任务设定优先级,优先响应高优先级的任务,现有的相关专利如:“CN201510162291.9 一种基于信号量的线程池共享方法及系统”、“CN201810935659.4 一种java线程池分级处理方法和装置”。
然而,以上两类方法都解决不了目前系统中遇到以下场景存在的问题:某运行多任务的线程池在定时接收任务处理时由于某个任务耗时较长,久而久之导致线程池资源全部被该任务侵占,其余任务则无法得到及时响应。但由于所有这些任务无法预先设定优先级且本身并未区分优先级。因此,在遇到以上场景时,会出现某个任务耗时拖延,从而导致整体卡顿的问题。
发明内容
本发明目的在于提供一种高可用线程池切换方法及装置,本发明能够解决当多个任务共用一个线程池时,其中某个任务耗时拖延,从而导致整体卡顿的问题。本发明使所有任务的平均响应时间达到了最低,且会自动识别有问题的任务,减少了人工干预;同时避免人工修改线程池参数;从而保证业务系统平稳运行,降低故障率,实现了高可用。
本发明通过下述技术方案实现:
第一方面,本发明提供了一种高可用线程池切换方法,该方法包括:
从动态线程池工厂获取主线程池,并检测所述主线程池的状态;
根据所述主线程池的状态,切换至不同的线程池执行新接收的任务,包括:
当所述主线程池的状态为确定阻塞状态时,则从主线程池切换至备用线程池为新接收的任务提供服务(这时主线程池不再为新接收的任务提供服务,只负责为原接收的任务提供服务,而是由备用线程池为新接收的任务提供服务),同时启动主线程池脏任务识别机制进行脏任务识别,并将识别出的脏任务置于脏任务资源受限线程池中执行;
当所述脏任务识别完成后,开启定时任务;根据所述定时任务检测所述主线程池的最新状态,如果所述主线程池的最新状态为恢复完成状态,则由备用线程池切换至原主线程池为新接收的任务提供服务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于科来网络技术股份有限公司,未经科来网络技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210972026.7/2.html,转载请声明来源钻瓜专利网。