基于任务线程配置的服务器任务处理方法技术

技术编号:21547584 阅读:16 留言:0更新日期:2019-07-06 21:16
本发明专利技术公开了一种基于任务线程配置的服务器任务处理方法,包括:识别所有任务的类型,根据类型查找完成该类型对应任务的经验时间值和经验线程数,经验时间值小于时间阈值,则归入连续处理组,经验时间值大于或等于时间阈值,则归入间断处理组;连续处理组的任务,服务器根据经验线程数为该任务优先配置已完成任务但未释放的线程和监听器,任务完成后,线程不释放,继续处理连续处理组内的任务,直至连续处理组内的任务全部完成,线程释放;间断处理组的任务,服务器根据经验线程数优先配置空闲状态的线程和监听器,任务完成后,线程释放。本发明专利技术具有既能及时处理用户常用的应用功能的任务,提高用户体验,又能提高总体任务处理速度的有益效果。

Server Task Processing Method Based on Task Thread Configuration

【技术实现步骤摘要】
基于任务线程配置的服务器任务处理方法
本专利技术涉及服务器任务处理领域。更具体地说,本专利技术涉及一种基于任务线程配置的服务器任务处理方法。
技术介绍
随着应用系统功能的不断增加,某些功能的实现对实时性要求不是那么高,但是逻辑却很复杂、执行比较耗时,比如涉及外部系统调用、多数据源等。而对于某些功能的实现,则对实时性要求很高,比如实时聊天,简历更新,而如果增加服务器的数量和容量,成本过高,不利于应用系统的推广应用,因此,设计一款能平衡二者需要的任务处理方法是值得本领域技术人员思量的。
技术实现思路
本专利技术的一个目的是解决至少上述问题,并提供至少后面将说明的优点。本专利技术还有一个目的是提供一种基于任务线程配置的服务器任务处理方法,根据时间阈值对任务进行分组,可以及时处理用户常用的应用功能的任务,提高用户体验,根据经验线程数合理配置线程,可以提高总体任务处理速度。为了实现根据本专利技术的这些目的和其它优点,提供了一种基于任务线程配置的服务器任务处理方法,其特征在于,包括:识别任务列表中的所有任务的类型,根据每个类型查找完成该类型对应的任务的经验时间值和经验线程数,根据经验时间值将所有任务分为连续处理组和间断处理组,如果经验时间值小于当前的时间阈值,则将任务归入所述连续处理组,如果经验时间值大于或等于当前时间阈值,则将任务归入所述间断处理组;从所述连续处理组选取一个任务,服务器根据经验线程数为该任务优先配置已完成任务但未释放的线程和监听线程处理状态的监听器,当该任务完成后,计算并保存完成该任务的实际时间和实际线程数,计算此次任务完成后,该类型的经验时间值和经验线程数并保存,并且线程不释放,继续处理所述连续处理组内的任务,直至所述连续处理组内的任务全部完成后,所述线程释放,呈空闲状态;从所述间断处理组选取一个任务,服务器根据经验线程数为该任务优先配置空闲状态的线程和监听线程处理状态的监听器,当该任务完成后,线程释放,呈空闲状态,计算并保存完成该任务的实际时间和实际线程数,计算此次任务该类型的经验时间值和经验线程数并保存。优选的是,还包括:处理连续处理组的任务,当已完成任务但未释放的线程的数量小于经验线程数时,则服务器为该任务再配置空闲的线程,如果已完成任务但未释放的线程的数量和空闲的线程数的总和小于经验线程数,则服务器建立新的线程,以使已完成任务但未释放的线程的数量与新建立的新的线程的数量的总和大于经验线程数。优选的是,还包括:当处理间断处理组的任务,且空闲状态的线程的数量小于经验线程数时,则服务器建立新的线程,以使新的线程的数量和空闲状态的线程的数量的总和大于经验线程数。优选的是,计算一次任务完成后,对应类型的经验时间值的方法具体为:选取当前时间t1至当前时间之前的时间t0之间的一段时间(t1-t0)内保存的经验时间值,将时间段(t1-t0)按时间顺序依次分成第一区间、第二区间、第三区间;将保存时间位于第一区间的经验时间值的总和均乘于加权值λ1后除以第一区间内的经验时间值的个数得到第一时间值,将保存时间位于第二区间的经验时间值的总和均乘于λ2后除以第二区间内的经验时间值的个数得到第二时间值,将保存时间位于第三区间的经验时间值的总和均乘于λ3后除以第三区间内的经验时间值的个数得到第三时间值,其中,λ1<λ2<λ3<1;第一时间值、第二时间值、第三时间值、此次完成任务后的实际时间值的平均值,即为此次任务完成后,对应类型的经验时间值。优选的是,每隔时间(t1-t0),删除保存时间在时间t0之前的经验时间值。优选的是,计算一次任务完成后,对应类型的经验线程数的方法具体为:选取当前时间t1至当前时间t1之前的时间t0之间的一段时间(t1-t0)内保存的经验线程数,计算保存的经验线程数和此次完成任务后的实际线程数的平均值,即得此次任务完成后,对应类型的经验线程数。优选的是,当前的时间阈值的计算方法具体为:计算当前时间所有任务的经验时间值的平均值和经验线程数的平均值,经验时间值的平均值和经验线程数的平均值的乘积即为时间阈值。优选的是,更新当前时间阈值的频率20次/min。本专利技术至少包括以下有益效果:通过将任务按经验时间值进行分组,并且通过将线程进行完成任务但不释放的设置,达到快速处理相同类型,或者需要即时处理的任务,提高用户体验,如果频繁的进行线程的释放和启动非常耗时,而一个应用大多情况下用户用到的功能都是比较普通的功能,用时较少,即经验时间值少的任务,而那些用时多的功能用得少些,通过时间阈值的设置,可以平衡服务器为各任务分配线程,从而达到各任务快速合理的得以执行。本专利技术的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本专利技术的研究和实践而为本领域的技术人员所理解。附图说明图1为本专利技术的其中一个技术方案的方法流程示意图。具体实施方式下面结合附图对本专利技术做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。如图1所示,本专利技术提供一种基于任务线程配置的服务器任务处理方法,包括:识别任务列表中的所有任务的类型,类型可以根据功能划分,比如发送消息、接收消息、连接外部数据等等,也可以根据事件划分,比如实时聊天、调用外部数据、数据源汇总等等,根据每个类型查找完成该类型对应的任务的经验时间值和经验线程数,根据经验时间值将所有任务分为连续处理组和间断处理组,如果经验时间值小于当前的时间阈值,则将任务归入所述连续处理组,如果经验时间值大于或等于当前时间阈值,则将任务归入所述间断处理组,时间阈值可以设置一个固定的值,也可以根据待处理的任务的数量、每个任务的经验时间值、经验线程数也计算,随时更新时间阈值,从而将任务分成两种,采用不同的线程进行处理,以期在有限的服务器资源时,更加合理的分配线程,平衡各项任务的执行,提高用户体验;从所述连续处理组选取一个任务,服务器根据经验线程数为该任务优先配置已完成任务但未释放的线程和监听线程处理状态的监听器,已完成任务但未释放的线程会呈现非空闲状态,当该任务完成后,计算并保存完成该任务的实际时间和实际线程数,计算此次任务完成后,该类型的经验时间值和经验线程数并保存,为下一次执行相同类型的任务提供时间值和线路数的参考,并且线程不释放,使线程在外部呈现为非空闲状态,从而不会被服务器配置给其它组的任务,实现优先满足连续处理组的任务,保证该组的任务更加快速的被处理,比如实时聊天,用户需要即时发送和得到消息回复,继续处理所述连续处理组内的任务,直至所述连续处理组内的任务全部完成后,所述线程释放,呈空闲状态;从所述间断处理组选取一个任务,服务器根据经验线程数为该任务优先配置空闲状态的线程和监听线程处理状态的监听器,当该任务完成后,线程释放,呈空闲状态,可以用于完成下一个任务,计算并保存完成该任务的实际时间和实际线程数,计算此次任务该类型的经验时间值和经验线程数并保存,为下一次执行相同类型的任务提供时间值和线路数的参考。在上述技术方案中,通过将任务按经验时间值进行分组,并且通过将线程进行完成任务但不释放的设置,达到快速处理相同类型,或者需要即时处理的任务,提高用户体验,如果频繁的进行线程的释放和启动非常耗时,而一个应用大多情况下用户用到的功能都是比较普通的功能,用时较少,即经验时间值少的任务,而那些用时多本文档来自技高网...

【技术保护点】
1.基于任务线程配置的服务器任务处理方法,其特征在于,包括:识别任务列表中的所有任务的类型,根据每个类型查找完成该类型对应的任务的经验时间值和经验线程数,根据经验时间值将所有任务分为连续处理组和间断处理组,如果经验时间值小于当前的时间阈值,则将任务归入所述连续处理组,如果经验时间值大于或等于当前时间阈值,则将任务归入所述间断处理组;从所述连续处理组选取一个任务,服务器根据经验线程数为该任务优先配置已完成任务但未释放的线程和监听线程处理状态的监听器,当该任务完成后,计算并保存完成该任务的实际时间和实际线程数,计算此次任务完成后,该类型的经验时间值和经验线程数并保存,并且线程不释放,继续处理所述连续处理组内的任务,直至所述连续处理组内的任务全部完成后,所述线程释放,呈空闲状态;从所述间断处理组选取一个任务,服务器根据经验线程数为该任务优先配置空闲状态的线程和监听线程处理状态的监听器,当该任务完成后,线程释放,呈空闲状态,计算并保存完成该任务的实际时间和实际线程数,计算此次任务该类型的经验时间值和经验线程数并保存。

【技术特征摘要】
1.基于任务线程配置的服务器任务处理方法,其特征在于,包括:识别任务列表中的所有任务的类型,根据每个类型查找完成该类型对应的任务的经验时间值和经验线程数,根据经验时间值将所有任务分为连续处理组和间断处理组,如果经验时间值小于当前的时间阈值,则将任务归入所述连续处理组,如果经验时间值大于或等于当前时间阈值,则将任务归入所述间断处理组;从所述连续处理组选取一个任务,服务器根据经验线程数为该任务优先配置已完成任务但未释放的线程和监听线程处理状态的监听器,当该任务完成后,计算并保存完成该任务的实际时间和实际线程数,计算此次任务完成后,该类型的经验时间值和经验线程数并保存,并且线程不释放,继续处理所述连续处理组内的任务,直至所述连续处理组内的任务全部完成后,所述线程释放,呈空闲状态;从所述间断处理组选取一个任务,服务器根据经验线程数为该任务优先配置空闲状态的线程和监听线程处理状态的监听器,当该任务完成后,线程释放,呈空闲状态,计算并保存完成该任务的实际时间和实际线程数,计算此次任务该类型的经验时间值和经验线程数并保存。2.如权利要求1所述的基于任务线程配置的服务器任务处理方法,其特征在于,还包括:处理连续处理组的任务,当已完成任务但未释放的线程的数量小于经验线程数时,则服务器为该任务再配置空闲的线程,如果已完成任务但未释放的线程的数量和空闲的线程数的总和小于经验线程数,则服务器建立新的线程,以使已完成任务但未释放的线程的数量与新建立的新的线程的数量的总和大于经验线程数。3.如权利要求1所述的基于任务线程配置的服务器任务处理方法,其特征在于,还包括:当处理间断处理组的任务,且空闲状态的线程的数量小于经验线程数时,则服务器建立新的线程,以使新的线程的数量和空闲状态的线程的数量的总和大于经验线程数。4.如...

【专利技术属性】
技术研发人员:郭盛
申请(专利权)人:北京网聘咨询有限公司
类型:发明
国别省市:北京,11

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

1