任务执行方法、装置、电子设备、存储介质制造方法及图纸

技术编号:25914468 阅读:16 留言:0更新日期:2020-10-13 10:33
本发明专利技术公开了任务执行方法、装置、电子设备、存储介质。任务执行方法包括:确定待执行的定时任务的类型;若待执行的定时任务为一级任务,则在到达待执行的定时任务的开始执行时刻的情况下,调用线程池中的空闲线程以执行待执行的定时任务;若待执行的定时任务为二级任务,则判断线程池中空闲线程的第一数量是否大于多个定时任务中未执行的一级任务的第二数量,在第一数量大于第二数量且到达待执行的定时任务的开始执行时刻的情况下,调用空闲线程以执行待执行的定时任务。从而能够在线程资源不足的情况下,尽可能保障定时任务执行的实时性。

【技术实现步骤摘要】
任务执行方法、装置、电子设备、存储介质
本专利技术涉及计算机
,特别涉及任务执行方法、装置、电子设备、存储介质。
技术介绍
业务系统会有各种各样的定时任务,例如,每天9点的打卡提醒任务、每个月定时统计工时任务、工作日的周一、周二、周五的开会提醒任务等。相关技术中,一般通过调用一个创建好的线程池内的线程定时地去执行配置好的定时任务,由于线程无法对任务进行区别对待,所有的任务只能公平地抢占线程资源。而一个业务系统包含大量的定时任务,如果需要执行的定时任务非常多而线程资源不足的情况下,部分定时任务就无法按照既定的计划被执行,会被延时执行,这种情况下任务执行的实时性无法得到保障。
技术实现思路
本专利技术提供一种任务执行方法、装置、电子设备、存储介质,以在线程资源不足的情况下,尽可能保障定时任务执行的实时性。具体地,本专利技术是通过如下技术方案实现的:第一方面,提供一种任务执行方法,应用于业务系统,所述业务系统包含多个定时任务;所述任务执行方法包括:确定待执行的定时任务的类型;若所述待执行的定时任务为一级任务,则在到达所述待执行的定时任务的开始执行时刻的情况下,调用线程池中的空闲线程以执行所述待执行的定时任务;若所述待执行的定时任务为二级任务,则判断所述线程池中空闲线程的第一数量是否大于所述多个定时任务中未执行的一级任务的第二数量,在所述第一数量大于所述第二数量且到达所述待执行的定时任务的开始执行时刻的情况下,调用所述空闲线程以执行所述待执行的定时任务,其中,所述一级任务的优先级高于所述二级任务的优先级。可选地,若类型为二级任务的待执行的定时任务的第三数量为n个,n≥2,调用所述空闲线程以执行所述待执行的定时任务,包括:判断所述第三数量是否大于所述第一数量与所述第二数量的差值i,i≥0;在所述第三数量大于所述差值的情况下,调用线程池中的i个空闲线程以执行i个待执行的定时任务;在所述第三数量不大于所述差值的情况下,调用所述线程池中的n个空闲线程以执行n个待执行的定时任务。可选地,调用线程池中的i个空闲线程以执行i个待执行的定时任务,包括:按照开始执行时刻的先后顺序对n个待执行的定时任务进行排序;从n个待执行的定时任务中选取排序靠前的i个待执行的定时任务,并调用i个空闲线程以执行所述i个待执行的定时任务。可选地,所述空闲线程包含正在执行预执行完毕的定时任务的线程,所述预执行完毕的定时任务为正在执行的定时任务中执行结束时刻早于所述待执行的定时任务的开始执行时刻的定时任务。可选地,若所述第一数量不大于所述第二数量,所述任务执行方法还包括:在正在执行的定时任务的执行时长大于时长阈值的情况下,停止执行所述正在执行的定时任务以释放线程。第二方面,提供一种任务执行装置,应用于业务系统,所述业务系统包含多个定时任务;所述任务执行装置包括:确定模块,用于确定待执行的定时任务的类型;调用模块,用于在所述待执行的定时任务为一级任务且到达所述待执行的定时任务的开始执行时刻的情况下,调用线程池中的空闲线程以执行所述待执行的定时任务;判断模块,用于在所述待执行的定时任务为二级任务的情况下,判断所述线程池中空闲线程的第一数量是否大于所述多个定时任务中未执行的一级任务的第二数量,并在所述第一数量大于所述第二数量且到达所述待执行的定时任务的开始执行时刻的情况下,调用所述调用模块,以调用所述空闲线程并执行所述待执行的定时任务,其中,所述一级任务的优先级高于所述二级任务的优先级。可选地,若类型为二级任务的待执行的定时任务的第三数量为n个,n≥2,所述调用模块包括:判断单元,用于判断所述第三数量是否大于所述第一数量与所述第二数量的差值i,i≥0,调用单元,用于在所述第三数量大于所述差值的情况下,调用线程池中的i个空闲线程以执行i个待执行的定时任务;所述调用单元,还用于在所述第三数量不大于所述差值的情况下,调用所述线程池中的n个空闲线程以执行n个待执行的定时任务。可选地,在调用线程池中的i个空闲线程以执行i个待执行的定时任务时,所述调用单元用于:按照开始执行时刻的先后顺序对n个待执行的定时任务进行排序;从n个待执行的定时任务中选取排序靠前的i个待执行的定时任务,并调用i个空闲线程以执行所述i个待执行的定时任务。可选地,所述空闲线程包含正在执行预执行完毕的定时任务的线程,所述预执行完毕的定时任务为正在执行的定时任务中执行结束时刻早于所述待执行的定时任务的开始执行时刻的定时任务。可选地,所述任务执行装置还包括:停止模块,用于在所述第一数量不大于所述第二数量且正在执行的定时任务的执行时长大于时长阈值的情况下,停止执行所述正在执行的定时任务以释放线程。第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的任务执行方法。第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的任务执行方法的步骤。本专利技术的实施例提供的技术方案可以包括以下有益效果:本专利技术实施例中,即便在一个业务系统中配置更多的定时任务,定时任务的数量大于线程池中线程的数量,也不会影响一级任务执行的实时性,且无需扩展线程资源,节省了运维成本。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本专利技术。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。图1是本专利技术一示例性实施例示出的一种任务执行方法的流程图;图2是本专利技术一示例性实施例示出的另一种任务执行方法的流程图;图3是本专利技术一示例性实施例示出的一种任务执行装置的模块示意图;图4是本专利技术一示例性实施例示出的一种电子设备的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。在本专利技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本专利技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本专利技术范围的情况下,第一信息也可以被称为第二信息,本文档来自技高网...

【技术保护点】
1.一种任务执行方法,其特征在于,应用于业务系统,所述业务系统包含多个定时任务;/n所述任务执行方法包括:/n确定待执行的定时任务的类型;/n若所述待执行的定时任务为一级任务,则在到达所述待执行的定时任务的开始执行时刻的情况下,调用线程池中的空闲线程以执行所述待执行的定时任务;/n若所述待执行的定时任务为二级任务,则判断所述线程池中空闲线程的第一数量是否大于所述多个定时任务中未执行的一级任务的第二数量,在所述第一数量大于所述第二数量且到达所述待执行的定时任务的开始执行时刻的情况下,调用所述空闲线程以执行所述待执行的定时任务,其中,所述一级任务的优先级高于所述二级任务的优先级。/n

【技术特征摘要】
1.一种任务执行方法,其特征在于,应用于业务系统,所述业务系统包含多个定时任务;
所述任务执行方法包括:
确定待执行的定时任务的类型;
若所述待执行的定时任务为一级任务,则在到达所述待执行的定时任务的开始执行时刻的情况下,调用线程池中的空闲线程以执行所述待执行的定时任务;
若所述待执行的定时任务为二级任务,则判断所述线程池中空闲线程的第一数量是否大于所述多个定时任务中未执行的一级任务的第二数量,在所述第一数量大于所述第二数量且到达所述待执行的定时任务的开始执行时刻的情况下,调用所述空闲线程以执行所述待执行的定时任务,其中,所述一级任务的优先级高于所述二级任务的优先级。


2.如权利要求1所述的任务执行方法,其特征在于,若类型为二级任务的待执行的定时任务的第三数量为n个,n≥2,调用所述空闲线程以执行所述待执行的定时任务,包括:
判断所述第三数量是否大于所述第一数量与所述第二数量的差值i,i≥0;
在所述第三数量大于所述差值的情况下,调用线程池中的i个空闲线程以执行i个待执行的定时任务;
在所述第三数量不大于所述差值的情况下,调用所述线程池中的n个空闲线程以执行n个待执行的定时任务。


3.如权利要求2所述的任务执行方法,其特征在于,调用线程池中的i个空闲线程以执行i个待执行的定时任务,包括:
按照开始执行时刻的先后顺序对n个待执行的定时任务进行排序;
从n个待执行的定时任务中选取排序靠前的i个待执行的定时任务,并调用i个空闲线程以执行所述i个待执行的定时任务。


4.如权利要求1所述的任务执行方法,其特征在于,所述空闲线程包含正在执行预执行完毕的定时任务的线程,所述预执行完毕的定时任务为正在执行的定时任务中执行结束时刻早于所述待执行的定时任务的开始执行时刻的定时任务。


5.如权利要求1所述的任务执行方法,其特征在于,若所述第一数量不大于所述第二数量,所述任务执行方法还包括:
在正在执行的定时任务的执行时长大于时长阈值的情况下,停止执行所述正在执行的定时任务以释放线程。


6.一种任务执行装置,其特征在于,应用于业务系统,所述业务系统包含多个定时任务;
所述任务执行装置包括:
确定模块,用于确定待执行的定时任务的类型;
调用模块,用于在所述待执行的定时任务为一级任务且到达所述待...

【专利技术属性】
技术研发人员:张亮
申请(专利权)人:杭州数梦工场科技有限公司
类型:发明
国别省市:浙江;33

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

1