具体实施方式
下面结合说明书附图对本发明实施例进行详细的描述。
参见图1,为本发明实施例中将任务流程划分为多个任务单元的示意图,图中,将任务流程划分为N个连续的、顺序的任务单元,并确定出每个任务单元的任务进度百分比,可通过下式(1)、(2)确定出各任务单元的任务进度百分比:
式(1)
式(2)
式(1)与式(2)中,F为任务流程的总任务量,N为任务单元的总数量,F
i为第i个任务单元的任务量,P
i为第i个任务单元的任务量占任务流程总任务量的百分比(即P
i为第i个任务单元的任务进度百分比),且
较佳地,为了提高确定出的任务进度的精确性,针对还可再细分的任务单元,将该任务单元再划分最细粒度的多个子任务单元,如图1所示,将可再细分的第n个任务单元(后续用任务单元n表示)划分成m个子任务单元,再将该任务单元n删除,以该m个子任务单元代替该任务单元n,将该m个子任务单元作为整个任务流程的任务单元,即将任务单元n划分成m个子任务单元之后该任务流程包含有(N-1+m)个任务单元;确定各子任务单元的任务进度百分比,可通过下式(3)、(4)得到各子任务单元的任务进度百分比:
式(3)
Qj=Zj/F 式(4)
式(3)与式(4)中,F
n为第n个任务单元的任务量,Z
j为第j个子任务单元的任务量,F为任务流程的总任务量,Q
j为第j个子任务单元的任务量占任务流程总任务量的百分比(即Q
j为第j个子任务单元的任务进度百分比),且
根据该N与n的取值,F与各任务单元的任务量的关系有以下四种情况:
(1)当N>1,n=1时,
(2)当N>1,n=N时,
(3)当N>1,1<n<N时,
(4)当N=1时,
上述四种情况,各公式中的参数的物理含义与式(1)、式(2)、式(3)以及式(4)中的参数的物理含义一致。
为更清楚和详细的描述本发明技术方案,下面结合具体的流程对本发明技术方案进行详细的描述,该流程如图2所示。
参见图2,为本发明实施例中确定已处理任务进度百分比(即任务进度)与未处理任务进度百分比所需处理时间的方法流程图,该流程包括以下步骤:
每处理完一个任务单元,则进行下述步骤201;设定的时间周期(该时间周期达到时,对已处理任务进度百分比与未处理任务进度百分比所需要的处理时间进行一次确定)到达时,则执行步骤202~203。
步骤201、每处理完一个任务单元时,确定出未处理任务单元所需要的总处理时间以及每个未处理任务单元所需要的处理时间。
步骤202、设定的确定时间周期到达时,确定出当前已经处理完的任务进度百分比。
步骤203、根据当前已处理任务进度百分比对应的实际所消耗的时间(该实际所消耗的时间为完成当前已处理任务量实际所消耗的时间),确定出未处理任务进度百分比所对应的处理时间。
需要说明的是,由于已处理任务进度百分比为已处理任务量与任务流程总任务量的比值,因此,完成该已处理任务量实际消耗的时间也可以称为已处理任务进度百分比所对应的实际消耗的时间;同理,未处理任务量所需要的处理时间也可以称为未处理进度百分比所对应的处理时间。
上述步骤201中,确定出未处理任务单元所对应的总处理时间(后续用T表示),具体为:
假设当前刚处理完第m个任务单元,可根据下式(5)、式(6)确定处理所有未处理任务单元的总处理时间T:
式(5)
式(6)
式(5)与式(6)中,R1为当前已经处理完的进度百分比,Pi为第i个任务单元的任务进度百分比,T为确定出的处理所有未处理任务单元所需要的总处理时间,Ti为已处理的第i个任务单元所实际消耗的时间。
本发明实施例中,确定出各未处理任务单元所需的处理时间,可通过下式(7)得到:
Dk=T×(Pk/(1-R1))式(7)
式(7)中,Dk为处理第k个未处理任务单元所需要的处理时间,T为根据上式(6)得到的处理完所有未处理任务单元所需要的总时间,Pk为第k个未处理任务单元的任务进度百分比,R1为根据公式(5)得到的当前已经处理的任务进度百分比。
上述步骤202中,当确定时间周期到达时,确定出当前已处理的任务进度百分比的方式如下:将已处理的各任务单元的任务进度百分比相加得到第一任务进度百分比,再计算出当前正在处理的任务单元中已处理的任务进度百分比(称为第二任务进度百分比),将该第一任务进度百分比与第二任务进度百分比的和值确定为当前已处理的任务进度百分比,确定已处理的任务进度百分比可通过式(8)得到:
式(8)
式(8)中,R为当前已处理的任务进度百分比,Pi为已处理的第i个任务单元的任务进度百分比,m为当前已经处理完的任务单元的总数量,Pm+1为当前正在处理的任务单元(该正在处理的任务单元为第m+1个任务单元)的任务进度百分比,Bm+1为该第m+1个任务单元的进度比例,(Pm+1×Bm+1)为第二任务进度百分比。
本发明实施例中,可采用线性确定方式或非线性确定方式确定出上述式(8)中的Bm+1。
较佳地,为进一步提高进度比例确定的精确性,本发明实施例中,先采用线性确定方式确定出式(8)中的Bm+1;判断该Bm+1是否有效,若Bm+1大于预先设定的进度比例阈值K,则确定该Bm+1无效,并通过非线性确定方式重新确定出Bm+1;否则,确定该Bm+1有效。采用线性确定方式确定第m+1个任务单元的进度比例Bm+1可通过下式(9)得到:
Bm+1=Wm+1/Dm+1式(9)
式(9)中,Bm+1为第m+1个任务单元的进度比例,Wm+1为处理式(8)中第二任务进度百分比实际所消耗的时间,Dm+1为通过上述式(7)确定出的处理第m+1个任务单元所需要的处理时间。
本发明实施例中采用非线性确定方式重新确定式(8)中的Bm+1,可通过式(10)得到:
Bm+1=K+o(Wm+1-Dm+1×K)式(10)
式(10)中,o(Wm+1-Dm+1×K)为严格单调递增函数,且该o(Wm+1-Dm+1×K)的值域为(0,1-K),Wm+1为处理当前正在处理的第m+1个任务单元的第二任务进度百分比实际所消耗的时间,Dm+1为根据上述式(7)确定出的处理第m+1个任务单元所需要的处理时间,K为预先设定的进度比例阈值。
上述步骤203中,确定出未处理的任务进度百分比所对应的处理时间,可通过下式(11)得到:
式(11)
式(11)中,T为处理未处理任务进度百分比所对应的总处理时间,Ti为处理第i个任务单元实际所消耗的时间,R为通过式(8)确定出的当前已处理的任务进度百分比。
本发明实施例中式(10)中的o(Wm+1-Dm+1×K)只要是阈值为(0,1-K)的严格单调递增函数即可,如o(Wm+1-Dm+1×K)=[(Wm+1-Dm+1×K)/(Wm+1-Dm+1×K+1)]×(1-K)。
较佳地,上述流程中的步骤201还进一步包括:每处理完一个任务单元之后,在确定出未处理任务单元所需要的总处理时间以及每个未处理任务单元所需要的处理时间之前,判断当前处理完的任务单元的后一个未处理任务单元是否可再划分成子任务单元,若可以,则将该未处理单元划分成最细粒度的多个子任务单元,并将划分得到的多个子任务单元代替该未处理任务单元,将该多个子任务单元作为该任务流程的多个未处理任务单元。
较佳地,为提高已处理任务进度百分比与未处理任务进度百分比所需要的处理时间的连续性,本发明实施例中,时间周期根据经验值设定,一般情况下,将该时间周期设置为小于处理一个任务单元实际所消耗的时间。
基于上述流程相同的构思,本发明实施例还提供一种确定已处理任务进度与未处理任务进度百分比所需处理时间的装置结构示意图,该装置包括任务单元确定单元31、任务进度百分比确定单元32以及第一时间确定单元33,其中:
任务单元确定单元31,用于将任务流程划分为多个任务单元。
任务单元确定单元31如何将任务流程划分成多个任务单元如前所述,在此不再赘述。
任务进度百分比确定单元32,用于在设定的时间周期到达时,确定出当前已处理的任务进度百分比R,该任务进度百分比R为当前已处理任务量与该任务流程的总任务量的比值。
任务进度百分比确定单元32如何确定出当前已处理的任务进度百分比R如上述流程中的步骤202所述,在此不再赘述。
第一时间确定单元33,用于根据任务进度百分比确定单元32确定出的已处理的任务进度百分比R对应的实际所消耗的时间,确定出未处理的任务进度百分比(1-R)所需要的处理时间。
第一时间确定单元33如何确定出未处理任务进度百分比(1-R)所对应的的处理时间如上述流程中的步骤203所述,在此不再赘述。
较佳地,上述装置还包括:
第二时间确定单元34,用于在每处理完一个任务单元时,根据已处理完的所有任务单元实际所消耗的时间,确定出处理各未处理任务单元所需要的处理时间。
任务进度百分比确定单元32根据第二时间确定单元34确定出的当前正在处理的任务单元所需要的处理时间以及当前处理该正处理单元中已处理的任务进度百分比对应的实际消耗的时间,确定出当前正在处理的任务单元的进度比例B;确定B的具体方式如前所述,在此不再赘述。
为更清楚描述本发明技术方案,下面以一具体的实例对本发明技术方案进行描述:
将当前需要处理的任务划分成6个任务单元,第一任务单元~第六任务单元所占的任务进度百分比依次为5%、10%、15%、20%、50%;设置的进度比例阈值设为75%。
步骤1、当执行完第一个任务单元时,根据执行完第一任务单元实际所消耗的时间10秒、式(5)与式(6)确定出处理其余五个任务单元所需要的总时间为(10×[(1-5%)/5%]=190秒;以及,根据式(7)可确定出处理第二任务单元所需要的时间为[190×(10%)]/(1-5%)=20秒。
步骤2、当执行完第二个任务单元时,根据执行完第一任务单元与任务单元所实际消耗的时间(10+30)秒、式(5)与式(6)确定出处理其余四个任务单元所需要的时间为(40×[(1-5%-10%)/(5%+10%)]=226.66秒;以及,根据式(7)可确定出处理第三任务单元所需要的时间为226.66×[(15%)/(1-5%-10%)]=40秒。
步骤3、当设定的确定时间周期到达时,确定出当前对第三个任务单元进行处理实际消耗了15秒,根据式(9)确定出执行第三任务单元的进度比例为15/40=37.5%,由于计算得到的进度比例小于预先设定的比例阈值75%,所以该用线形方式确定的进度比例值有效,再根据式(8)计算得到当前已经处理的任务进度任务进度百分比为5%+10%+15%×37.5%=20.625%。
步骤4、当设定的确定时间周期到达时,确定出当前对第三个任务单元进行处理实际消耗了32秒,则根据式(9)确定执行第三任务单元的进度比例为32/40=80%,由于计算得到的进度比例大于预先设定的比例阈值75%,所以该用线形方式确定的进度比例值无效,再根据式(10)得到对第三任务单元进行非线性估算,得到的进度比例为75%+[(32-40×75%)/(32-40×75%+1)]×(1-75%)=92%,从而根据式(8)确定出当前已完成的任务单元进度百分比为5%+10%+15%×92%=28.8%。
按照上述步骤即可确定出执行各任务单元所需要的时间以及任务处理进度,并且从上述的数据可以分析得到,本发明实施例在完成第二任务单元实际消耗的时间为30秒,根据本发明技术方案得到处理剩余4个任务单元所需要的时间为226.66秒,而若按照现有技术的技术方案可确定出处理剩余4个任务单元所需要的时间为170秒;对比可知,本发明技术方案是在根据已经处理的任务单元实际消耗的时间来确定出任务进度与未处理任务单元所需要的时间,与现有技术相比,提高了对任务进度以及未处理任务单元所需要的时间进行判断的准确性。
采用本发明技术方案,一方面,在时间周期到达时,根据已处理的任务进度百分比对应的实际消耗的时间来确定未处理的任务进度百分比所对应的处理时间,从而提高了确定出的未处理的任务进度百分比所对应的处理时间的精确度;另一方面,设定的时间周期可根据实际需要设定,如可设定的较小,当时间周期达到时,计算出的已处理任务进度百分比包含两部分,一部分是已经处理完的任务单元的任务进度百分比之和,另一部分为时间周期到达时当前正在处理的任务单元中已经处理的任务进度百分比,从而使得,确定出的以完成任务进度百分比更准确,并且显示给用户的任务进度条较为连续,为用户提供实时、准确的任务进度;再一方面,在每处理完一个任务单元之后,判断该任务单元的后一个未处理任务单元是否可以划分为最细粒度的子任务单元,并在可以划分时,将该未处理任务单元划分为多个子任务单元,并将该多个子任务单元代替该未处理任务单元,从而更进一步的提高了确定出的处理时间的精确度。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。