线程池任务处理方法技术

技术编号:37125501 阅读:37 留言:0更新日期:2023-04-01 05:22
本发明专利技术公开了一种线程池任务处理方法,涉及数据处理技术领域,包括检测线程池的任务等待队列是否已满;检测应用主机的运行状态是否正常;生成第一告警信息,并将所述第一告警信息发送至用户;将所述待执行任务添置至任务等待队列,或添加核心线程以执行所述待执行任务,本发明专利技术基于应用主机的运行状态和任务等待队列,对待执行任务进行相应处理,保护线程池和整个应用的正常运行,解决了线程池运行时容易宕机的问题,实现了线程池在创建线程前完成安全检测,同时,当应用主机的运行状态为异常时,生成第一告警信息并发送给用户,便于用户及时发现问题,以作相应处理,实现应用风险控制。制。制。

【技术实现步骤摘要】
线程池任务处理方法


[0001]本专利技术涉及数据处理
,尤其涉及一种线程池任务处理方法。

技术介绍

[0002]线程池(英语:thread pool),是一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。
[0003]线程池对于是否接收和创建多线程任务,通常只检测实时线程数是否超过阈值与任务等待队列是否已满,忽略了当前运行环境的硬件检测,存在容易宕机的问题。

技术实现思路

[0004]本专利技术的主要目的在于:提供一种专利技术名称,旨在解决现有技术中线程池运行时容易宕机的的技术问题。
[0005]为实现上述目的,本专利技术采用如下技术方案:
[0006]一种线程池任务处理方法,所述方法包括:
[0007]当接收到待执行任务时,检测线程池的任务等待队列是否已满;
[0008]当任务等待队列为未满状态时,检测应用主机的运行状态是否正常;
[0009]当所述应用主机的运行状态为异常时,生成第一告警信息,并将所述第一告警信息发送至用户;
[0010]当所述应用主机的运行状态为正常时,将所述待执行任务添置至任务等待队列,或添加核心线程以执行所述待执行任务。
[0011]可选地,所述当接收到待执行任务时,检测线程池的任务等待队列是否已满的步骤之后,所述方法还包括
[0012]当所述任务等待队列为已满状态时,拒绝所述待执行任务加入任务等待队列。
[0013]可选地,所述当所述应用主机的运行状态为异常时,生成第一告警信息,并将所述第一告警信息发送至用户的步骤之后,所述方法还包括:
[0014]重复检测所述应用主机的运行状态是否正常,当所述检测次数大于次数阈值时,且所述应用主机的运行状态均为异常时,生成第二告警信息,并将所述第二告警信息发送至用户;
[0015]当所述检测次数小于次数阈值时,且至少一次检测结果为所述应用主机的运行状态为正常时,所述待执行任务添置至任务等待队列。
[0016]可选地,所述当所述应用主机的运行状态为正常时,将所述待执行任务添置至任务等待队列,或添加核心线程以执行所述待执行任务,包括:
[0017]当所述应用主机的运行状态为正常时,检测实时线程数是否大于核心线程数;
[0018]当所述实时线程数是否大于核心线程数时,添加核心线程以执行所述待执行任
务;
[0019]当所述实时线程数是否小于核心线程数时,将所述待执行任务添置至任务等待队列。
[0020]可选地,所述检测应用主机的运行状态是否正常,包括:
[0021]检测所述应用主机的CPU、内存和磁盘中至少一种的实时使用率,当所述实时使用率大于使用率阈值时,确认所述应用主机的运行状态为异常。
[0022]可选地,所述当接收到待执行任务时,检测线程池的任务等待队列是否已满的步骤之前,所述方法还包括:
[0023]当所述线程池启动时,检测所述线程池是否接收到配置中心发送的配置信息;
[0024]当所述线程池接收到配置中心发送的实时配置信息时,将所述实时配置信息加载到所述应用主机的内存中,并使得所述线程池根据所述实时配置信息运行;
[0025]当所述线程池未接收到配置中心发送的实时配置信息时,利用所述线程池从所述应用主机的内存中获取历史配置信息,以使得所述线程池根据所述历史配置信息运行。
[0026]可选地,当接收到待执行任务时,检测线程池的任务等待队列是否已满的步骤之前,所述方法还包括:
[0027]获取所述线程池的基本信息,将所述线程池的基本信息在注册中心进行注册。
[0028]本专利技术提供的上述一个或多个技术方案,可以具有如下优点或至少实现了如下技术效果:
[0029]本专利技术提出的一种线程池任务处理方法,通过当接收到待执行任务时,检测线程池的任务等待队列是否已满;当任务等待队列为未满状态时,检测应用主机的运行状态是否正常;当所述应用主机的运行状态为异常时,生成第一告警信息,并将所述第一告警信息发送至用户;当所述应用主机的运行状态为正常时,将所述待执行任务添置至任务等待队列,或添加核心线程以执行所述待执行任务,基于应用主机的运行状态和任务等待队列,对待执行任务进行相应处理,保护线程池和整个应用的正常运行,解决了线程池运行时容易宕机的问题,实现了线程池在创建线程前完成安全检测,同时,当应用主机的运行状态为异常时,生成第一告警信息并发送给用户,便于用户及时发现问题,以作相应处理,实现应用风险控制。
附图说明
[0030]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的这些附图获得其他的附图。
[0031]图1为本专利技术线程池任务处理方法的流程示意图;
[0032]本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0033]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发
明的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0034]需要说明,在本专利技术实施例中,所有方向性指示(诸如上、下、左、右、前、后
……
)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变,则该方向性指示也相应地随之改变。在本专利技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。另外,全文中出现的“和/或”的含义,包括三个并列的方案,以“A和/或B”为例,包括A方案、或B方案、或A和B同时满足的方案。在本专利技术中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连;可以是两个元件内部的连通,也可以是两个元件的相互作用关系。在本专利技术中,若有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程池任务处理方法,其特征在于,所述方法包括:当接收到待执行任务时,检测线程池的任务等待队列是否已满;当任务等待队列为未满状态时,检测应用主机的运行状态是否正常;当所述应用主机的运行状态为异常时,生成第一告警信息,并将所述第一告警信息发送至用户;当所述应用主机的运行状态为正常时,将所述待执行任务添置至任务等待队列,或添加核心线程以执行所述待执行任务。2.如权利要求1所述的线程池任务处理方法,其特征在于,所述当接收到待执行任务时,检测线程池的任务等待队列是否已满的步骤之后,所述方法还包括:当所述任务等待队列为已满状态时,拒绝所述待执行任务加入任务等待队列。3.如权利要求2所述的线程池任务处理方法,其特征在于,所述当所述应用主机的运行状态为异常时,生成第一告警信息,并将所述第一告警信息发送至用户的步骤之后,所述方法还包括:重复检测所述应用主机的运行状态是否正常,当所述检测次数大于次数阈值时,且所述应用主机的运行状态均为异常时,生成第二告警信息,并将所述第二告警信息发送至用户;当所述检测次数小于次数阈值时,且至少一次检测结果为所述应用主机的运行状态为正常时,所述待执行任务添置至任务等待队列。4.如权利要求3所述的线程池任务处理方法,其特征在于,所述当所述应用主机的运行状态为正常时,将所述待执行任务添置至任务等待队列,或添加核心线程以执行所述待...

【专利技术属性】
技术研发人员:符红孟毕延全
申请(专利权)人:上海中通吉网络技术有限公司
类型:发明
国别省市:

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

1