CN109766172A - 一种异步任务调度方法以及装置 - Google Patents
一种异步任务调度方法以及装置 Download PDFInfo
- Publication number
- CN109766172A CN109766172A CN201811528646.1A CN201811528646A CN109766172A CN 109766172 A CN109766172 A CN 109766172A CN 201811528646 A CN201811528646 A CN 201811528646A CN 109766172 A CN109766172 A CN 109766172A
- Authority
- CN
- China
- Prior art keywords
- task
- asynchronous task
- asynchronous
- status
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本申请公开了一种异步任务调度方法以及装置,可应用于云计算/集群计算。该方法包括:创建异步任务状态表,其中,所述异步任务状态表中的异步任务采用对应的状态标识进行标识;建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控;若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务;根据所述异步任务的执行情况,更新所述异步任务的状态标识。此外,还公开一种异步任务调度装置。实施本申请的方案,基于异步任务的处理状态,对异步任务进行调度,以兼顾异步任务的处理效率和执行顺序,提高了异步任务的处理效率,保障了异步任务的执行率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种异步任务调度方法以及相关装置。
背景技术
随着移动互联网、云计算、大数据时代的到来,一个完整的业务流程往往依托于业务系统才能完成,线上业务量激增。而现有的业务系统难以适应业务的迅速发展,在出现多个任务需要处理的情况时,不仅不能及时处理,还常常因为处理任务量过于集中,造成任务处理失败,甚至导致业务系统的崩溃。在业务系统崩溃以后,往往耗费大量人力物力,恢复因系统故障而中断的任务,这对于业务发展和公司的正常营运都是极大的阻碍。所以,保障相关任务的执行过程,减少因业务系统故障而产生的问题,是业务发展的重点。
当前一些公司主要采用分布式系统处理业务,分摊业务处理量,以达成分摊因系统故障而妨碍业务正常处理的风险的目的。但现有的处理方式,并不适用于某些对时间限制要求较高的业务。同时,在系统发生故障后,维修人员的业务素质高低对系统正常运行程度起到了决定性作用。在后续的执行过程中,业务的实际处理速度有限,业务的执行率较为低下。
发明内容
本申请实施例提供一种异步任务调度方法以及装置,以兼顾异步任务的处理效率和执行顺序,有效提高异步任务的处理效率,保障异步任务的执行率。
第一方面,本申请实施例提供了一种异步任务调度方法,包括:创建异步任务状态表,其中,所述异步任务状态表中的异步任务采用对应的状态标识进行标识;建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控;若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务;根据所述异步任务的执行情况,更新所述异步任务的状态标识。
在一种可能的实现方式中,所述异步任务状态表包括以下一种或多种:失败表、成功表、处理中表和等待表;所述异步任务的状态标识包括以下一个或多种:失败状态、成功状态、处理中状态和等待状态。
在另一种可能的实现方式中,所述异步任务队列数量包括一个或多个;所述异步任务队列中异步任务状态包括以下一种或多种:失败任务状态、成功任务状态、处理中任务状态和等待任务状态。
在又一种可能的实现方式中,所述若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务,包括:根据异步任务队列中的异步任务数量与第一阈值的差值,确定异步任务的待分配数量;从所述失败表中获取带有失败状态标识的任务,向所述异步任务队列分配所述带有失败状态标识的任务;判断所述所述带有失败状态标识的任务的数量是否达到所述待分配数量,如果所述所述带有失败状态标识的任务的数量未达到所述待分配数量,则进一步从所述等待表中获取带有等待状态标识的任务。
在又一种可能的实现方式中,所述若根据所述异步任务的执行情况,更新所述异步任务的状态标识,包括:确定所述异步任务是否执行成功;若执行成功,采用成功状态标识所述异步任务;否则,采用失败状态标识标识所述异步任务。
在又一种可能的实现方式中,所述方法包括:对所述异步任务的执行次数进行计数;当所述计数达到第二阈值时,调整所述异步任务的执行优先级。
第二方面,本申请实施例提供了一种异步任务调度装置,包括:任务状态单元,用于创建异步任务状态表,其中,所述异步任务状态表中的异步任务采用对应的状态标识进行标识;建立单元,用于建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控;分配单元,用于若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务;更新单元,用于根据所述异步任务的执行情况,更新所述异步任务的状态标识。
在一种可能的实现方式中,所述装置还包括:计数单元,用于对所述异步任务的执行次数进行计数;调整单元,用于当所述计数达到第二阈值时,调整所述异步任务的执行优先级。
在另一种可能的实现方式中,所述分配单元具体用于,根据计算出的异步任务队列中的异步任务数量与第一阈值的差值,确定异步任务的待分配数量;从所述失败表中获取带有失败状态标识的任务,向所述异步任务队列分配所述带有失败状态标识的任务;判断所述带有失败状态标识的任务的数量是否达到所述待分配数量,如果所述失带有失败状态标识的任务的数量未达到所述待分配数量,则进一步从所述等待表中获取带有等待状态的任务。
在又一种可能的实现方式中,所述更新单元具体用于,确定所述异步任务是否执行成功;若执行成功,采用成功状态标识对所述异步任务进行标识;否则,采用失败状态标识对所述异步任务进行标识。
在又一种可能的实现方式中,所述调整单元还用于,当所述计数达到第三阈值时,向用户发送异常报告。
第三方面,本申请实施例提供了一种异步任务调度装置,包括:处理器、输入装置、输出装置和存储器,其中,存储器用于存储支持终端执行上述方法的计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行上述第一方面及其任一种可选方式的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请实施例具有以下有益效果:
在服务器空闲时,基于异步任务的处理状态,对异步任务进行调度,以兼顾异步任务的处理效率和执行顺序,提高了异步任务的处理效率,保障了异步任务的执行率。
附图说明
图1是本申请实施例提供的一种异步任务调度方法的流程示意图;
图2-a是本申请实施例提供的另一种异步任务调度方法的流程示意图;
图2-b是本申请实施例提供的一种异步任务调度的活动状态图;
图3是本申请实施例提供的一种异步任务调度装置的结构示意图;
图4是本申请实施例提供的一种异步任务调度装置的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本申请实施例提供的一种异步任务调度方法的流程示意图。
S101、创建异步任务状态表,其中,所述异步任务状态表中的异步任务采用对应的状态标识进行标识。
本实施例中,异步任务是指来自不同的服务器的任务,或者任务执行的时间存在先后,或者随着任务的执行,任务的状态存在不同。为便于对不同状态的异步任务进行管理,本步骤中,创建异步任务状态表。上述异步任务状态表包括失败表、成功表、处理中表和等待表。这些异步任务状态表用于描述每一轮异步任务的执行状态或结果。异步任务状态表采用不同的标识进行标识。异步状态标识包括失败状态标识、成功状态标识、处理中状态标识和等待状态标识,即采用失败状态标识来标识失败任务,创建失败表;采用成功状态标识来标识执行成功的任务,创建成功表;采用处理中状态标识来标识处理中的任务,创建处理中表;采用等待状态标识来标识处于等待中的任务,创建等待表。需要说明的是,也可以并不真正存在这样的状态表,而是仅用不同的状态标识来标识不同状态的异步任务。每一轮异步任务执行完成后,异步任务的存储状态或结果可能发生相应变化,异步任务的异步状态标识也随之发生改变。
S102、建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控。
监控每个异步任务队列的异步任务数量,可以判断服务器的资源利用程度。当一个异步任务队列中的异步任务数量接近阈值时,说明该服务器负荷较重,资源利用程度高,需要停止接受新的异步任务。服务器中异步任务数量较少,说明该服务器处于空闲状态,需要接受新的异步任务,用于提高资源利用程度。
S103、若所述异步任务队列中的异步任务数量小于第一阈值,根据所述状态标识,向所述异步任务队列分配任务。
在一种可能的实现方式中,根据异步任务队列中的当前正在执行的异步任务数量与第一阈值的差值,确定异步任务的待分配数量。基于所述异步任务的待分配数量,根据服务器运行状态,从所述失败表中获取带有失败状态标识的任务,向所述异步任务队列分配所述带有失败状态标识的任务;判断所述带有失败状态标识的任务的数量是否达到所述待分配数量,如果所述带有失败状态标识的任务的数量未达到所述待分配数量,则进一步从所述等待表中获取带有等待状态标识的任务。
具体的,当上述异步任务队列中的异步任务数量与上述阈值的差值大于或者等于预设固定值,则分配的异步任务数量为预设固定值;否则,分配的异步任务数量为所述阈值与异步任务队列中的异步任务数量的差值。在确定异步任务的待分配数量后,若服务器处于正常运行状态时,向上述异步任务队列优先分配带有失败状态标识的异步任务,再向上述异步任务队列分配带有等待状态标识的异步任务。
进一步的,在确定异步任务的待分配数量后,若服务器处于异常重启状态时,从上述失败表中获取带有失败状态标识的任务,向上述异步任务队列分配所述带有失败状态标识的任务;判断上述带有失败状态标识的任务的数量是否达到上述待分配数量,如果上述带有失败状态标识的任务的数量未达到上述待分配数量,则进一步从上述处理中表获取带有处理中状态标识的任务;判断此时异步队列中任务的数量是否达到上述待分配数量,如果未达到上述待分配数量,则继续从上述等待表中获取带有等待状态标识的任务。
在又一种可能的实现方式中,根据服务器运行状态,确定异步任务的待分配顺序。在异步任务的待分配顺序已经确定的前提下,计算出异步任务队列中的异步任务数量与阈值的差值,确定异步任务的可分配数量,并开始分配。
具体的,上述服务器运行状态分为正常运行状态和异常重启状态。在服务器处于正常运行状态时,会依照失败表、等待表的待分配顺序向异步任务队列分配异步任务。在根据确定好的待分配顺序进行分配任务之前,需要计算阈值与异步任务队列中的异步任务数量的差值,确定异步任务的待分配数量,再进行异步任务的分配。
进一步的,在服务器处于异常重启状态时,会依照失败表、处理中表、等待表的待分配顺序向异步任务队列分配异步任务。在根据确定好的待分配顺序进行分配任务之前,需要计算阈值与异步任务队列中的异步任务数量的差值,确定异步任务的待分配数量,再进行异步任务的分配。
S104、根据所述异步任务的执行情况,更新所述异步任务的状态标识。
从异步任务状态表中拉取异步任务后,或者异步任务队列的任务被执行操作后,异步任务的状态会发生相应的变化。
具体的,确定所述异步任务执行是否成功;若成功,采用成功状态标识来标识所述异步任务,存入成功表;否则,采用失败状态标识来标识所述异步任务,存入失败表。
根据本申请实施例提供的一种异步任务调度方法,创建异步任务状态表;建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控;若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务;根据所述异步任务的执行情况,更新所述异步任务的状态标识。实施本申请的方案,能够兼顾异步任务的处理效率和执行顺序,有效提高了异步任务的处理效率,保障了异步任务的执行率。
请参阅图2-a,图2-a是本申请实施例提供的另一种异步任务调度方法的流程示意图。
S201、创建异步任务状态表,其中,所述异步任务状态表中的异步任务采用对应的状态标识进行标识。
本实施例中,异步任务是指来自不同的服务器的任务,或者任务执行的时间存在先后,或者随着任务的执行,任务的状态存在不同。为便于对不同状态的异步任务进行管理,本步骤中,创建异步任务状态表。上述异步任务状态表包括失败表、成功表、处理中表和等待表。这些异步任务状态表用于描述每一轮异步任务的执行状态或结果。异步任务状态表采用不同的标识进行标识。异步状态标识包括失败状态标识、成功状态标识、处理中状态标识和等待状态标识,即采用失败状态标识来标识失败任务,创建失败表;采用成功状态标识来标识执行成功的任务,创建成功表;采用处理中状态标识来标识处理中的任务,创建处理中表;采用等待状态标识来标识处于等待中的任务,创建等待表。需要说明的是,也可以并不真正存在这样的状态表,而是仅用不同的状态标识来标识不同状态的异步任务。每一轮异步任务执行完成后,异步任务的存储状态或结果可能发生相应变化,异步任务的异步状态标识也随之发生改变。
在初始创建各个异步任务状态表时,各个异步任务状态表都为空。
在第一轮任务开始执行之前,将任务全部存入等待表,每个任务采用等待状态标识进行标识。在第一轮执行任务开始时,即任务被拉入任务执行队列时,将被拉入执行队列的任务采用处理中状态标识进行标识。在每一轮任务执行完成后,根据任务的执行结果,采用失败标识或成功标识分别标识该任务,即将异步任务分别加入失败表、成功表。未执行的任务仍然位于等待表中。
可见,根据异步任务的执行情况,异步任务的状态可能发生变化。例如,在第N-1轮中,若存在M个任务执行失败,将该M个任务存入失败表,并采用失败状态标识进行标识;若这M个任务在第N轮中执行成功,就转存入成功表,并采用成功状态标识进行标识。
又例如,在第N-1轮中未能进入异步任务队列的N个任务,存入等待表,生成对应的等待状态标识。在第N轮开始执行的X个任务,存入处理中表,生成对应的处理中状态标识。
S202、建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控。
服务器建立异步任务队列。该异步任务队列中的任务包括一种或多种任务状态表中的异步任务,即加入异步任务队列之前,这些异步任务的状态可能不相同。进入异步任务队列的异步任务,则均采用处理中状态标识进行标识,即存入处理中表建立异步任务队列是为了将不同状态的异步任务按照设定的顺序进行处理。服务器可以同时运行一个或多个异步任务队列,每个异步任务队列包括一个或多个异步任务。
监控每个异步任务队列的异步任务数量,可以判断服务器的资源利用程度。当一个异步任务队列中的异步任务数量接近阈值时,说明该服务器负荷较重,资源利用程度高,需要停止接受新的异步任务。服务器中异步任务数量较少,说明该服务器处于空闲状态,需要接受新的异步任务,用于提高资源利用程度。
S203、若所述异步任务队列中的异步任务数量小于第一阈值,根据所述状态标识,向所述异步任务队列分配任务。
具体地,又包括以下几种实现方式:
若所述异步任务队列中的异步任务数量小于第一阈值,则说明服务器处于较空闲状态,可以处理更多的异步任务。但在根据异步任务状态分配任务之前,需要计算阈值与异步任务队列中的异步任务数量的差值,确定异步任务的待分配数量。
具体的,当所述异步任务队列中的异步任务数量与上述阈值的差值大于或者等于预设固定值,则分配的异步任务数量为预设固定值;否则,分配的异步任务数量为所述阈值与异步任务队列中的异步任务数量的差值。
例如,预设固定值为100件任务,阈值与异步任务队列中的异步任务数量的差值为200件,则异步任务可分配数量为100件任务。
又例如,预设固定值为100件任务,阈值与异步任务队列中的异步任务数量的差值为80件,则异步任务可分配数量为80件任务。
在一种可能的实现方式中,根据异步任务队列中的当前正在执行的异步任务数量与第一阈值的差值,确定异步任务的待分配数量。基于所述异步任务的待分配数量,根据服务器运行状态,确定异步任务的待分配顺序。上述服务器运行状态分为正常运行状态和异常重启状态。在服务器处于正常运行状态时,异步任务队列依次从失败表、等待表中拉取任务,再执行新生成的任务。在服务器处于异常重启状态时,异步任务队列依次从失败表、处理中表、等待表中拉取任务,再执行新生成的任务。
在服务器处于正常运行状态时,会依照失败表、等待表的待分配顺序向异步任务队列分配异步任务。在根据确定好的待分配顺序进行分配任务之前,需要计算阈值与异步任务队列中的异步任务数量的差值,确定异步任务的待分配数量,再进行异步任务的分配。
例如,在服务器处于正常运行状态时,当前异步任务队列的可分配数量为80件,先将失败表中的异步任务全部拉取到异步任务队列后,再拉取等待表中的异步任务。即若当前失败表中带有失败状态标识的异步任务件数为50件,则先让这50件异步任务全部进入异步任务队列中,再分配30件带有等待状态标识的异步任务进入异步任务队列。
又例如,在服务器处于正常运行状态时,当前异步任务队列的可分配数量为80件,先拉取40件失败表中带有失败状态标识的异步任务,再拉取40件等待表中带有等待状态标识的异步任务。
又例如,在服务器处于正常运行状态时,当前异步任务队列的可分配数量为80件,每次拉取10件异步任务,在这10件任务拉取过程中,先拉取7件带有失败状态标识的异步任务,再拉取3件带有等待标识的异步任务。
可以理解,上述说明仅仅是作为举例,本申请实施例对不同状态的异步任务拉取比例不作任何限定。
同样的,对于新生成的任务,首先确定在按照上述规则拉取任务后,异步任务队列分配数量是否已经达成,若已经达成,则新生成的任务全部存入等待表,生成等待状态标识;否则,部分新生成的任务进入队列,同时存入处理中表,生成处理中状态标识,未能进入队列的任务存入等待表,生成等待状态标识。
具体的,在服务器意外重启后,异步任务队列会清空所有的任务。为保障任务的执行先后顺序,避免有任务遗漏。异步任务队列向所述异步任务队列优先分配带有失败状态标识的异步任务,再分配带有处理中国状态标识的异步任务,接着向所述异步任务队列分配带有等待状态标识的异步任务,最后执行新生成的任务。
例如,在服务器处于异常重启状态,异步任务队列清空所有任务的情况下,异步任务分配数量为100件任务,可以按照5%的比例先拉取5件带有失败状态标识的异步任务,再按照70%的比例拉取70件带有处理中标识的异步任务,接着按照15%的比例拉取15件带有等待标识的异步任务,最后按照10%的比例拉取10件新生成的异步任务。可以理解,上述说明仅仅是作为举例,本申请实施例对不同状态的异步任务拉取比例不作任何限定。
可选的,在服务器处于异常重启状态时,会依照失败表、处理中表、等待表的待分配顺序向异步任务队列分配异步任务。在根据确定好的待分配顺序进行分配任务之前,需要计算阈值与异步任务队列中的异步任务数量的差值,确定异步任务的待分配数量,再进行异步任务的分配。
在又一种可能的实现方式中,根据服务器运行状态,确定异步任务的待分配顺序。在异步任务的待分配顺序已经确定的前提下,计算出异步任务队列中的异步任务数量与阈值的差值,确定异步任务的可分配数量,并开始分配。
上述服务器运行状态分为正常运行状态和异常重启状态。在服务器处于正常运行状态时,会依照失败表、等待表的待分配顺序向异步任务队列分配异步任务。在服务器处于异常重启状态时,会依照失败表、处理中表、等待表的待分配顺序向异步任务队列分配异步任务。
例如,在服务器处于正常运行状态下,根据当前业务的具体需求,可以确定待分配异步任务的待分配顺序为:按照40%的比例拉取带有失败任务状态的异步任务,按照60%的比例拉取带有等待任务状态的异步任务。
又例如,在服务器处于异常重启状态时,根据当前业务的具体需求,可以确定待分配异步任务的待分配顺序为:按照20%的比例拉取带有失败任务状态的异步任务,按照50%的比例拉取带有处理中任务状态的异步任务,按照30%的比例拉取带有等待任务状态的异步任务。
可以理解,上述说明仅仅是作为举例,本申请实施例对不同状态的异步任务拉取比例不作任何限定。
同样的,对于新生成的任务,首先确定满足上述待分配顺序,再根据具体业务需求拉取新生成的异步任务。部分新生成的任务能够被拉取进入队列,这些任务会同时存入处理中表,生成处理中状态标识,未能被拉取进入队列的新任务则会存入等待表,生成等待状态标识。
例如,在服务器处于正常运行状态下,根据当前业务的具体需求,可以确定按照40%的比例拉取带有失败任务状态的异步任务,按照50%的比例拉取带有等待任务状态的异步任务,按照10%的比例拉取新生成的任务,并将这部分任务存入处理中表。
又例如,在服务器处于异常重启状态下,根据当前业务的具体需求,可以确定按照25%的比例拉取带有失败任务状态的异步任务,按照45%的比例拉取带有处理中任务标识的异步任务,按照20%的比例拉取带有等待任务标识的异步任务,按照10%的比例拉取新生成的异步任务。在这部分新生成的异步任务确认被拉取后,会同时存入处理中表。
可以理解,上述说明仅仅是作为举例,本申请实施例对不同状态的异步任务拉取比例不作任何限定。
若所述异步任务队列中的异步任务数量小于阈值,则说明服务器处于较空闲状态,可以处理更多的异步任务。但在根据确定好的待分配顺序进行分配任务之前,需要计算阈值与异步任务队列中的异步任务数量的差值,确定异步任务的待分配数量,再进行异步任务的分配。
具体的,当所述异步任务队列中的异步任务数量与所述阈值的差值大于或者等于预设固定值,则分配的异步任务数量为预设固定值;否则,分配的异步任务数量为所述阈值与异步任务队列中的异步任务数量的差值。
例如,预设固定值为100件任务,阈值与异步任务队列中的异步任务数量的差值为200件,则异步任务可分配数量为100件任务。服务器当前处于正常运行状态,确定的分配规则为按照3:7的比例分别拉取带有失败任务状态的异步任务和带有等待任务状态的异步任务,所以最终先拉取30件带有失败任务状态的异步任务,再拉取70件带有等待任务状态的异步任务。
又例如,预设固定值为100件任务,阈值与异步任务队列中的异步任务数量的差值为80件,则异步任务可分配数量为80件任务。服务器当前处于异常重启状态,确定的分配规则为按照1:8:1的比例分别拉取带有失败任务状态的异步任务、带有处理中任务状态的异步任务和带有等待任务状态的异步任务,所以最终先拉取8件带有失败任务状态的异步任务,再拉取64件带有处理中任务状态的异步任务,最后拉取8件带有等待任务状态的异步任务。
可以理解,上述说明仅仅是作为举例,本申请实施例对不同状态的异步任务拉取比例不作任何限定。
S204、根据所述异步任务的执行情况,更新所述异步任务的状态。
具体的,确定所述异步任务执行是否成功;若成功,采用成功状态标识来标识所述异步任务,存入成功表;否则,采用失败状态标识来标识所述异步任务,存入失败表。
请参阅图2-b,图2-b是本申请实施例提供的一种异步任务调度的活动状态图。
从异步任务状态表中拉取异步任务后,或者异步任务队列的任务被执行操作后,相关的异步任务的状态会发生相应的变化。
例如,在第N轮任务执行过程中,从等待表中拉取X个任务,则这X个任务采用处理中状态标识进行标识,存入处理中表。根据具体的异步任务执行情况,X个任务中的Y个任务执行成功,则这Y个任务采用成功状态标识进行标识,存入成功表中;X个任务中的Z个任务执行失败,则这Z个任务采用失败状态标识进行标识,存入失败表中。可见,在一个任务的执行前后,先后被采用等待中、处理中、成功或失败进行标识。
又例如,在第N轮任务执行前,有X个拥有处理中状态标识的任务已经位于异步任务队列中。根据具体的异步任务执行情况,X个任务中的Y个任务执行失败,则这Y个任务采用失败状态标识,从处理中表存入失败表;X个任务中的Z个任务执行成功,则这Z个任务采用成功状态标识,从处理中表存入成功表。
又例如,在第N轮任务执行过程中,从失败表中拉取X个失败任务,则这X个任务采用处理中状态标识进行标识。根据具体的异步任务执行情况,X个任务中的Y个任务执行失败,则这Y个任务采用失败状态标识,仍然存入失败表;X个任务中的Z个任务执行成功,则这Z个任务采用成功状态标识进行标识,存入成功表。
S205、对所述异步任务的执行次数进行计数,当所述计数达到第二阈值时,调整所述异步任务的执行优先级。
执行失败的异步任务会进入失败表,当上述异步任务的执行次数过多,证明该异步任务多次执行失败,需要尽快将该异步任务执行完成。如果这些多次执行失败的异步任务和执行次数较少的异步任务的优先级一致,那么不能达到尽快将这些异步任务执行完成的目的。
在一种可选的实现方式中,可以对异步任务的执行次数进行计数,当上述计数达到第二阈值时,所述异步任务的优先级得到提升。
在又一种可选的实现方式中,可以对异步任务的执行次数进行计数,当上述计数达到第二阈值时,所述异步任务的优先级得到提升;当上述计数达到第三阈值时,向用户发送异常报告。
例如,在上述计数达到第三阈值时,生成的异常报告内容包括但不限于以下一种或多种信息:首次执行时间信息、轮转时间信息、执行次数信息、所属项目信息、故障次数信息和优先级信息。管理员用户可以根据接收到的异常报告,确定任务执行失败的原因,有针对性地处理执行失败的异步任务。
可以理解,上述说明仅仅是作为举例,本申请实施例不作任何限定。
根据本申请实施例提供的一种异步任务调度方法,创建异步任务状态表;建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控;若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务;根据所述异步任务的执行情况,更新所述异步任务的状态标识;对所述异步任务的执行次数进行计数,当所述计数达到第二阈值时,调整所述异步任务的执行优先级。实施本申请的方案,能够基于不同的应用场景,兼顾异步任务的执行效率和执行顺序,为用户提供更具有针对性的任务执行情况。
请参阅图3,图3是本申请实施例提供的一种异步任务调度装置的结构示意图。该异步任务调度装置包括:任务状态单元301、建立单元302、分配单元303及更新单元304;还可包括计数单元305及调整单元306。其中:
任务状态单元301,用于创建异步任务状态表,其中,所述异步任务状态表中的异步任务采用对应的状态标识进行标识;
建立单元302,用于建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控;
分配单元303,用于若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务;
更新单元304,用于根据所述异步任务的执行情况,更新所述异步任务的状态标识。
在一种实现方式中,所述异步任务调度装置还包括:
计数单元305,用于对所述异步任务的执行次数进行计数;
调整单元306,用于当所述计数达到第二阈值时,调整所述异步任务的执行优先级。
在另一种可能的实现方式中,调整单元306还用于,当所述计数达到第三阈值时,向用于发送异常报告。
有关上述任务状态单元301、建立单元302、分配单元303、更新单元304、计数单元305及调整单元306更详细的描述可以直接参考上述图1或图2所述的方法实施例中异步任务调度方法的相关描述直接得到,这里不加赘述。
本申请实施例提供的一种异步任务调度装置,可以根据不同的服务器状态,实现异步任务的调度。为用户提供更有针对性的异步任务执行情况,有效提高了异步任务的执行效率。
请参阅图4,图4是本申请实施例提供的一种异步任务调度装置的硬件结构示意图。如图4所示的本实施例中的异步任务调度装置可以包括:处理器401、输入装置402、输出装置403及存储器404。上述处理器401、输入装置402、输出装置403及存储器404之间可以通过总线相互连接。
存储器包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable readonly memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器用于相关指令及数据。
处理器可以包括是一个或多个处理器,例如包括一个或多个中央处理器(centralprocessing unit,CPU),在处理器是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
存储器用于存储网络设备的程序代码和数据。
输入装置用于输入数据和/或信号,以及输出装置用于输出数据和/或信号。输出装置和输入装置可以是独立的器件,也可以是一个整体的器件。
处理器用于调用该存储器中的程序代码和数据,执行如下步骤:创建异步任务状态表,其中,所述异步任务状态表中的异步任务采用对应的状态标识进行标识;建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控;若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务;根据所述异步任务的执行情况,更新所述异步任务的状态标识。
在一种可能的实现方式中,所述处理器执行若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务的步骤,包括:根据异步任务队列中的异步任务数量与第一阈值的差值,确定异步任务的待分配数量;根据服务器运行状态,确定异步任务队列中异步任务的执行顺序。
在另一种可能的实现方式中,所述处理器执行若根据所述异步任务的执行情况,更新所述异步任务的状态标识的步骤,包括:确定所述异步任务是否执行成功;若执行成功,采用成功状态标识所述异步任务;否则,采用失败状态标识标识所述异步任务。
在又一种可能的实现方式中,所述处理器执行若根据所述异步任务的执行情况,更新所述异步任务的状态标识的步骤之后,包括:对所述异步任务的执行次数进行计数;当所述计数达到第二阈值时,调整所述异步任务的执行优先级。进一步的,当所述计数达到第三阈值时,向用户发送异常报告。
可以理解的是,图4仅仅示出了异步任务调度装置的简化设计。在实际应用中,异步任务调度装置还可以分别包含必要的其他元件,包含但不限于任意数量的网络接口、输入装置、输出装置、处理器、存储器等,而所有可以实现本申请实施例的车载终端都在本申请的保护范围之内。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存储存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
Claims (10)
1.一种异步任务调度方法,其特征在于,包括:
创建异步任务状态表,其中,所述异步任务状态表中的异步任务采用对应的状态标识进行标识;
建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控;
若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务;
根据所述异步任务的执行情况,更新所述异步任务的状态标识。
2.根据权利要求1所述的方法,其特征在于,所述异步任务状态表包括以下一种或多种:失败表、成功表、处理中表和等待表;
所述异步任务的状态标识包括以下一个或多种:失败状态、成功状态、处理中状态和等待状态。
3.根据权利要求1所述的方法,其特征在于,所述异步任务队列数量包括一个或多个;
所述异步任务队列中异步任务状态包括以下一种或多种:失败任务状态、成功任务状态、处理中任务状态和等待任务状态。
4.根据权利要求2或3所述的方法,其特征在于,所述若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务,包括:
根据异步任务队列中的异步任务数量与第一阈值的差值,确定异步任务的待分配数量;
从所述失败表中获取带有失败状态标识的任务,向所述异步任务队列分配所述带有失败状态标识的任务;
判断所述带有失败状态标识的任务的数量是否达到所述待分配数量,如果所述带有失败状态标识的任务的数量未达到所述待分配数量,则进一步从所述等待表中获取带有等待状态标识的任务。
5.根据权利要求1所述的方法,其特征在于,所述若根据所述异步任务的执行情况,更新所述异步任务的状态标识,包括:
确定所述异步任务是否执行成功;
若执行成功,采用成功状态标识所述异步任务;否则,采用失败状态标识标识所述异步任务。
6.根据权利要求1所述的方法,其特征在于,还包括:
对所述异步任务的执行次数进行计数;
当所述计数达到第二阈值时,调整所述异步任务的执行优先级。
7.一种异步任务调度装置,其特征在于,包括:
任务状态单元,用于创建异步任务状态表,其中,所述异步任务状态表中的异步任务采用对应的状态标识进行标识;
建立单元,用于建立异步任务队列,并对所述异步任务队列中的异步任务数量进行监控;
分配单元,用于若所述异步任务队列中的异步任务数量小于第一阈值,根据所述任务状态标识,向所述异步任务队列分配异步任务;
更新单元,用于根据所述异步任务的执行情况,更新所述异步任务的状态标识。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
计数单元,用于对所述异步任务的执行次数进行计数;
调整单元,用于当所述计数达到第二阈值时,调整所述异步任务的执行优先级。
9.根据权利要求7所述的装置,其特征在于,所述分配单元用于:
根据计算出的异步任务队列中的异步任务数量与第一阈值的差值,确定异步任务的待分配数量;
从所述失败表中获取带有失败状态标识的任务,向所述异步任务队列分配所述带有失败状态标识的任务;
判断所述带有失败状态标识的数量是否达到所述待分配数量,如果所述带有失败状态标识的任务的数量未达到所述待分配数量,则进一步从所述等待表中获取带有等待状态标识的任务。
10.一种异步任务调度装置,其特征在于,包括处理器、输入装置、输出装置和存储器,其中所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811528646.1A CN109766172A (zh) | 2018-12-13 | 2018-12-13 | 一种异步任务调度方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811528646.1A CN109766172A (zh) | 2018-12-13 | 2018-12-13 | 一种异步任务调度方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766172A true CN109766172A (zh) | 2019-05-17 |
Family
ID=66451838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811528646.1A Pending CN109766172A (zh) | 2018-12-13 | 2018-12-13 | 一种异步任务调度方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766172A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110308979A (zh) * | 2019-06-27 | 2019-10-08 | 苏宁消费金融有限公司 | 基于任务调度的异步处理框架及其实现方法 |
CN110781145A (zh) * | 2019-10-25 | 2020-02-11 | 浪潮电子信息产业股份有限公司 | 一种文件系统任务调度方法、装置、设备及可读存储介质 |
CN111045810A (zh) * | 2019-12-17 | 2020-04-21 | 浙江大华技术股份有限公司 | 一种任务调度处理方法及装置 |
CN112416545A (zh) * | 2020-11-04 | 2021-02-26 | 北京五八信息技术有限公司 | 一种任务处理方法及装置 |
CN112612430A (zh) * | 2020-12-25 | 2021-04-06 | 南阳柯丽尔科技有限公司 | 打印机的打印控制方法、相关设备及存储介质 |
CN115297361A (zh) * | 2022-07-29 | 2022-11-04 | 北京字跳网络技术有限公司 | 转码任务的处理方法、装置、转码系统、电子设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170371703A1 (en) * | 2016-06-28 | 2017-12-28 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
CN107870822A (zh) * | 2016-09-26 | 2018-04-03 | 平安科技(深圳)有限公司 | 基于分布式系统的异步任务控制方法及系统 |
-
2018
- 2018-12-13 CN CN201811528646.1A patent/CN109766172A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170371703A1 (en) * | 2016-06-28 | 2017-12-28 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
CN107870822A (zh) * | 2016-09-26 | 2018-04-03 | 平安科技(深圳)有限公司 | 基于分布式系统的异步任务控制方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110308979A (zh) * | 2019-06-27 | 2019-10-08 | 苏宁消费金融有限公司 | 基于任务调度的异步处理框架及其实现方法 |
CN110781145A (zh) * | 2019-10-25 | 2020-02-11 | 浪潮电子信息产业股份有限公司 | 一种文件系统任务调度方法、装置、设备及可读存储介质 |
CN110781145B (zh) * | 2019-10-25 | 2022-04-22 | 浪潮电子信息产业股份有限公司 | 一种文件系统任务调度方法、装置、设备及可读存储介质 |
CN111045810A (zh) * | 2019-12-17 | 2020-04-21 | 浙江大华技术股份有限公司 | 一种任务调度处理方法及装置 |
CN111045810B (zh) * | 2019-12-17 | 2023-08-29 | 浙江大华技术股份有限公司 | 一种任务调度处理方法及装置 |
CN112416545A (zh) * | 2020-11-04 | 2021-02-26 | 北京五八信息技术有限公司 | 一种任务处理方法及装置 |
CN112612430A (zh) * | 2020-12-25 | 2021-04-06 | 南阳柯丽尔科技有限公司 | 打印机的打印控制方法、相关设备及存储介质 |
CN115297361A (zh) * | 2022-07-29 | 2022-11-04 | 北京字跳网络技术有限公司 | 转码任务的处理方法、装置、转码系统、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766172A (zh) | 一种异步任务调度方法以及装置 | |
CN108881495B (zh) | 资源分配方法、装置、计算机设备及存储介质 | |
CN109873868A (zh) | 一种计算能力共享方法、系统及相关设备 | |
CN110808922B (zh) | 一种消息处理方法、装置、存储介质及电子设备 | |
CN112165691A (zh) | 内容分发网络调度方法、装置、服务器和介质 | |
CN107968802A (zh) | 一种资源调度的方法、装置和过滤式调度器 | |
CN109327540A (zh) | 电子装置、服务器负载均衡方法及存储介质 | |
CN109992403B (zh) | 多租户资源调度的优化方法、装置、终端设备及存储介质 | |
CN111694646A (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN111459645B (zh) | 一种任务调度方法、装置和电子设备 | |
CN112162835A (zh) | 一种异构云环境下实时任务的调度优化方法 | |
CN114461393A (zh) | 多任务调度方法、装置、电子设备、系统及自动驾驶车辆 | |
CN108028806B (zh) | 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN108985556B (zh) | 流量调度的方法、装置、设备和计算机存储介质 | |
CN114116173A (zh) | 动态调整任务分配的方法、装置和系统 | |
CN113986534A (zh) | 任务调度方法、装置、计算机设备和计算机可读存储介质 | |
CN111359205B (zh) | 云端游戏的操作方法、装置、计算机设备及存储介质 | |
CN113347238A (zh) | 基于区块链的消息分区方法及系统、设备、存储介质 | |
CN109697117A (zh) | 终端控制方法、装置以及计算机可读存储介质 | |
CN111796933A (zh) | 资源调度方法、装置、存储介质和电子设备 | |
CN105760209B (zh) | 移除虚拟机的方法、装置与自动弹性群组 | |
CN111240865A (zh) | 一种基于消息队列的弹性伸缩活动优先级管理系统及方法 | |
CN115712572A (zh) | 任务的测试方法、装置、存储介质及电子装置 | |
CN113285886B (zh) | 一种带宽分配的方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |