本申请涉及计算机技术领域,特别涉及一种任务执行方法、任务执行装置、服务器以及计算机可读存储介质。
背景技术:
随着信息技术的不断发展,服务器系统中执行的任务更加复杂,越来越多种类的任务需要执行。并且,单一单向的执行任务无法满足这种情况的任务执行需要。因此,就出现了任务执行系统对任务执行进行调度。
现有技术中,任务执行系统一般都是基于单个值的优先级来调度和运行任务的,这样的优先级规则非常简单,同时这样的系统实现起来也非常简单。然而在实际中,服务器管理系统里面的任务是千差万别的,有的任务是同步的、有的任务是异步的,有的是短时的紧急任务、有的是长时的一般任务,导致了在实际运行中降低了执行的灵活程度。
因此,如何提高任务执行的灵活程度是本领域技术人员关注的重点。
技术实现要素:
本申请的目的是提供一种任务执行方法、任务执行装置、服务器以及计算机可读存储介质,通过任务类型和任务预期运行情况确定每个任务的权重因子和权重系数,然后计算出对应的优先级,最后通过该优先级执行任务,提高了任务执行的灵活性。
为解决上述技术问题,本申请提供一种任务执行方法,包括:
根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数;
根据所述权重因子和所述权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级;
根据每个任务的优先级按照执行策略执行对应的任务。
可选的,根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数,包括:
根据运行环境的硬件特征和软件特征确定所述任务预期运行情况;
根据所述任务类型和所述任务预期运行情况确定每个任务的权重因子和权重系数。
可选的,所述执行策略包括优先级执行策略;
相应的,根据每个任务的优先级按照执行策略执行对应的任务,包括:
在每一次执行任务时,执行优先级最大的任务。
可选的,所述执行策略包括抢占执行策略;
相应的,根据每个任务的优先级按照执行策略执行对应的任务,包括:
按照预设时间间隔计算优先级的最大值和优先级的最小值之间的差值;
当所述差值大于预设差值时,将执行队列中的任务进行暂停,并执行所述优先级的最大值对应的任务。
本申请还提供一种任务执行装置,包括:
权重确定模块,用于根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数;
优先级计算模块,用于根据所述权重因子和所述权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级;
任务执行模块,用于根据每个任务的优先级按照执行策略执行对应的任务。
可选的,所述权重确定模块,包括:
运行情况确定单元,用于根据运行环境的硬件特征和软件特征确定所述任务预期运行情况;
权重确定单元,用于根据所述任务类型和所述任务预期运行情况确定每个任务的权重因子和权重系数。
可选的,所述任务执行模块,具体用于在每一次执行任务时,执行优先级最大的任务。
可选的,所述任务执行模块,包括:
差值计算单元,用于按照预设时间间隔计算优先级的最大值和优先级的最小值之间的差值;
任务抢占单元,用于当所述差值大于预设差值时,将执行队列中的任务进行暂停,并执行所述优先级的最大值对应的任务。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的任务执行方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任务执行方法的步骤。
本申请所提供的一种任务执行方法,包括:根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数;根据所述权重因子和所述权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级;根据每个任务的优先级按照执行策略执行对应的任务。
通过任务类型和任务预期运行情况确定每个任务的权重因子和权重系数,根据所述权重因子和所述权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级,最后通过该优先级执行任务,提高了任务执行的灵活性,提高了任务管理系统在开发和运行方面的方便程度。
本申请还提供一种任务执行装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种任务执行方法的流程图;
图2为本申请实施例所提供的一种任务执行装置的结构示意图。
具体实施方式
本申请的核心是提供一种任务执行方法、任务执行装置、服务器以及计算机可读存储介质,通过任务类型和任务预期运行情况确定每个任务的权重因子和权重系数,然后计算出对应的优先级,最后通过该优先级执行任务,提高了任务执行的灵活性。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,任务执行系统一般都是基于单个值的优先级来调度和运行任务的,这样的优先级规则非常简单,同时这样的系统实现起来也非常简单。然而在实际中,服务器管理系统里面的任务是千差万别的,有的任务是同步的、有的任务是异步的,有的是短时的紧急任务、有的是长时的一般任务,导致了在实际运行中降低了执行的灵活程度。
因此,本申请提供了一种任务执行方法,通过任务类型和任务预期运行情况确定每个任务的权重因子和权重系数,根据所述权重因子和所述权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级,最后通过该优先级执行任务,提高了任务执行的灵活性,提高了任务管理系统在开发和运行方面的方便程度。
请参考图1,图1为本申请实施例所提供的一种任务执行方法的流程图。
本实施例中,该方法可以包括:
s101,根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数;
本步骤旨在根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数。其中,任务类型是指该任务在具体的运行环境中的分类,例如,任务的执行主体分类、任务的数据来源分类、任务的大小分类。需要主要的是,在不同的角度对于任务存在不同的分类,多个角度的分类都可以作为本步骤中的任务类型。以便在多维度判断任务的不同类型,提高任务的执行灵活性,更加贴合实际的情况。
其中,任务预期运行情况是指将任务预期运行后得到的运行情况数据,例如,任务的运行时间,任务的资源占用量等。
可选的,本步骤可以包括:
步骤1,根据运行环境的硬件特征和软件特征确定任务预期运行情况;
步骤2,根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数。
可见,本可选方案主要是对如何确定权重因子和权重系数进行说明。本可选方案,具体的根据运行环境的硬件特征和软件特征确定任务预期运行情况;然后,根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数。也就是,根据运行环境的各种特征确定任务预期运行情况,然后再根据任务类型确定出每个任务的权重因子和权重系数。
s102,根据权重因子和权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级;
在s101的基础上,本步骤旨在根据权重因子和权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级。
也就是,根据权重因子和权重系数进行相应的优先级的计算处理,得到每个任务的优先级。其中,计算优先级的方式可以采用现有技术提供的任意一种的优先级计算方法。
s103,根据每个任务的优先级按照执行策略执行对应的任务。
在s102的基础上,本步骤旨在根据每个任务的优先级按照执行策略执行对应的任务。也就是,通过以上计算出的优先级按照执行策略执行对应的任务。
可选的,执行策略包括优先级执行策略;
相应的,本步骤可以包括:
在每一次执行任务时,执行优先级最大的任务。
可见,本可选方案主要是对当按照优先级执行策略执行任务进行说明。具体的,当执行策略为优先级执行策略时,在每一次执行任务时,执行优先级最大的任务。也就是,按照优先级的最大值执行任务。具体的,将优先级最大的任务加入到任务执行列表中进行执行。
可选的,执行策略包括抢占执行策略;
相应的,本步骤可以包括:
步骤1,按照预设时间间隔计算优先级的最大值和优先级的最小值之间的差值;
步骤2,当差值大于预设差值时,将执行队列中的任务进行暂停,并执行优先级的最大值对应的任务。
可见,本可选方案主要是对当按照抢占执行策略执行任务进行说明。具体的,按照预设时间间隔计算优先级的最大值和优先级的最小值之间的差值;当差值大于预设差值时,将执行队列中的任务进行暂停,并执行优先级的最大值对应的任务。也就是,当出现最大优先级和最小优先级的差值较大时,表示出现了突发任务,那么现在就可以暂停当前的任务,并执行该最大值对应的任务,以便提高任务执行的灵活程度。
综上,本实施例通过任务类型和任务预期运行情况确定每个任务的权重因子和权重系数,根据权重因子和权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级,最后通过该优先级执行任务,提高了任务执行的灵活性,提高了任务管理系统在开发和运行方面的方便程度。
以下通过另一个具体的实施例,对本申请提供的一种任务执行方法进行说明。
本实施例中,该方法可以包括:
步骤1,列举出服务器管理系统中所有的任务种类。
在服务器管理系统中,比较典型的任务包括:
服务器自动发现:设置一个网段,系统定期自动扫描这个网段里所有的ip,以发现新加入的ip。
服务器主动发现:用户输入一个网段,系统立即扫描这个网段里所有的ip,以发现新加入的ip。
服务器性能信息采集:系统定时地向每个已经发现的服务器发送请求,查询服务器的各种信息,比如网卡速度,内存利用率,cpu温度等等。
服务器硬件信息采集:系统定时地向每个已经发现的服务器发送请求,查询服务器的硬盘的容量,网卡的带宽等等。
服务器固件升级:服务器管理系统定期检测所管理的服务器的固件版本,如果发现服务器使用的固件版本比较老旧,就自动更新为新版本的固件。
发送警报邮件:当服务器管理系统发现某台服务器的性能信息超过预先设定的阈值的时候,就向管理员发送警报邮件。
步骤2,确定每种类型任务的主要特征;
分析所有列举出来的任务的,找到最重要的特征进行评估。
步骤3,确定权重因子的值;
通过对实际的任务的运行情况进行观察和统计,确定各个权重因子的大小。
预计的运行时间是值这个任务大致的平均运行时间。比如服务器自动发现的值是255*3*60,表示对255个服务器进行批处理,在每个服务器上大致花费0.5分钟;发送警报邮件的值是1*5*60,表示发送一封邮件的时间大概是5分钟。
预期资源占用量是这个任务占用各种资源的和。比如性能信息采集的值是6000+10000,表示的是需要消耗6000单位的cpu和10000单位的内存。
紧急程度代表的是这个任务的重要性和紧迫性。比如服务器主动发现的值是80000,比服务器自动发现的值要高很多,表示用户主动扫描服务器的任务更为紧迫,为了提高服务器管理系统的响应速度。
步骤4,确定每种因子的权重系数;
如果想让运行时间短的任务先运行,那么可以设置系数小于0,反之,可以设置系数大于0。
如果想让占用资源少的任务先运行,那么可以设置系数小于0,反之,可以设置系数大于0。
紧急程度影响的是系统的响应速度,如果非常重视系统的响应速度,可以设值其系数接近1.0,反之,设置系统接近0。
步骤5,调度器定时地计算待执行任务队列中所有任务的优先级。
权重系数用ξi∈[-1.0,1.0]来表示,权重因子本身的大小用fi≥0来表示,其中的下标i表示任务的索引。用下面的公式计算加权和:
其中,的p表示任务的优先级。
步骤6,执行器负责运行优先级最高的任务;
执行器选取任务队列中优先级最高的几个任务,从待执行队列中删除,放入执行队列并运行,将已经运行结束的任务从执行队列中删除。
步骤7,抢占器负责调度最紧急的任务;
首先从待执行队列中挑选优先级最高的任务:
其中,下标i表示待执行队列中的任务的索引。
然后从执行队列中挑选优先级最低的任务:
其中,下标i表示执行队列中的任务的索引。
然后计算两者的差值m=pa-pb。如果差值m大于预先设定的阈值,那么将任务a从待执行队列转移到执行队列,同时将任务b从执行队列转移到待执行队列。
可见,本实施例通过任务类型和任务预期运行情况确定每个任务的权重因子和权重系数,根据权重因子和权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级,最后通过该优先级执行任务,提高了任务执行的灵活性,提高了任务管理系统在开发和运行方面的方便程度。
下面对本申请实施例提供的一种任务执行装置进行介绍,下文描述的一种任务执行装置与上文描述的一种任务执行方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种任务执行装置的结构示意图。
本实施例中,该装置可以包括:
权重确定模块100,用于根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数;
优先级计算模块200,用于根据权重因子和权重系数对每个任务进行任务优先级的计算,得到每个任务的优先级;
任务执行模块300,用于根据每个任务的优先级按照执行策略执行对应的任务。
可选的,该权重确定模块100,可以包括:
运行情况确定单元,用于根据运行环境的硬件特征和软件特征确定任务预期运行情况;
权重确定单元,用于根据任务类型和任务预期运行情况确定每个任务的权重因子和权重系数。
可选的,该任务执行模块200,具体用于在每一次执行任务时,执行优先级最大的任务。
可选的,该任务执行模块200,可以包括:
差值计算单元,用于按照预设时间间隔计算优先级的最大值和优先级的最小值之间的差值;
任务抢占单元,用于当差值大于预设差值时,将执行队列中的任务进行暂停,并执行优先级的最大值对应的任务。
本申请实施例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的任务执行方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的任务执行方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种任务执行方法、任务执行装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。