一种计算任务进度的方法和系统的制作方法

文档序号:6521291阅读:562来源:国知局
一种计算任务进度的方法和系统的制作方法
【专利摘要】本发明提供一种计算任务进度的方法和系统,能够比较精确地确定服务器执行任务时的进度。本发明的计算任务进度的方法包括:步骤A:针对当前任务在执行过程中的每个采样时刻,分别计算当前采样时刻下对应于所述当前任务的每个预设影响维度的进度分量,所述进度分量为两个预设的因子的乘积,其中第一因子对应于预设影响维度,第二因子为所述当前采样时刻的所述当前任务的参考进度值;步骤B:对各个预设影响维度的进度分量求和,并根据求和结果以及所述参考进度值确定所述当前任务在当前时刻的进度值。
【专利说明】一种计算任务进度的方法和系统
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别地涉及一种计算任务进度的方法和系统。
【背景技术】
[0002]在大多数操作系统中,通常提供标准的进度条控件,以显示当前任务的进度,例如复制文件的进度,或者安装软件的进度等。进度通常以百分比表示,例如对于复制文件的进度,进度值可以是一个百分数,表示已复制的文件大小占待复制文件大小的百分比。进度值也可以是时间长度,例如在安装软件时,会给出距离完成安装的时长。
[0003]随着互联网技术的普及与深入发展,用户可以使用客户端例如个人计算机,通过互联网得到各种服务,例如向服务商提供的网盘进行文档的存储/读取,或者下载并安装软件等。在用户获得服务的过程中,由客户端发起任务,例如文件传输或者下载并安装软件等任务,由服务器来执行该任务。此时用户通常想了解任务执行的进度,对于服务器来说,一般同时向多个用户提供服务,即有多个任务在执行,相应地需确定多个任务进度。对于这种情况,服务器执行任务的进度计算较为复杂,使确定任务进度时的精确性成为需要考虑的问题。

【发明内容】

[0004]有鉴于此,本发明提供一种计算任务进度的方法和系统,能够比较精确地确定服务器执行任务时的进度。
[0005]为实现上述目的,根据本发明的一个方面,提供了 一种计算任务进度的方法。
[0006]本发明的计算任务进度的方法包括:步骤A:针对当前任务在执行过程中的每个采样时刻,分别计算当前采样时刻下对应于所述当前任务的每个预设影响维度的进度分量,所述进度分量为两个预设的因子的乘积,其中第一因子对应于预设影响维度,第二因子为所述当前采样时刻的所述当前任务的参考进度值;步骤B:对各个预设影响维度的进度分量求和,并根据求和结果以及所述参考进度值确定所述当前任务在当前时刻的进度值。
[0007]可选地,所述第一因子为预设的维度影响值与该维度影响值的预设权重之积。
[0008]可选地,在所述步骤A中,将预设的维度影响值作为所述第一因子计算所述乘积,并在所述步骤B中根据该乘积结果进行所述求和得到第一进度值;以及在所述步骤A中,将预设的维度影响值与该维度影响值的预设权重之积作为所述第一因子计算所述乘积,并在所述步骤B中根据该乘积结果进行所述求和得到第二进度值;并且在所述步骤B中,将所述第一进度值和第二进度值中更接近所述参考进度值的一个值作为所述当前任务在当前时刻的进度值。
[0009]可选地,在所述步骤A中,对于每个预设影响维度的进度分量,由分布式计算系统中的多个计算机分别计算出多个值;在所述步骤B中,根据所述多个值中的一个值计算,或者根据所述多个值的平均值计算。
[0010]根据本发明的另一方面,提供了一种计算任务进度的系统。[0011]本发明的计算任务进度的系统包括多个从节点模块,以及多个分析模块,其中:所述从节点模块,用于针对当前任务在执行过程中的每个采样时刻,分别计算当前采样时刻下对应于所述当前任务的每个预设影响维度的进度分量,所述进度分量为两个预设的因子的乘积,其中第一因子对应于预设影响维度,第二因子为所述当前采样时刻的所述当前任务的参考进度值;所述分析模块,用于对各个预设影响维度的进度分量求和,并根据求和结果以及所述参考进度值确定所述当前任务在当前时刻的进度值。
[0012]可选地,所述第一因子为预设的维度影响值与该维度影响值的预设权重之积。
[0013]可选地,所述从节点模块还用于将预设的维度影响值作为所述第一因子计算所述乘积,所述分析模块还用于根据该乘积结果进行所述求和得到第一进度值;所述从节点模块还用于将预设的维度影响值与该维度影响值的预设权重之积作为所述第一因子计算所述乘积,所述分析模块还用于根据该乘积结果进行所述求和得到第二进度值;所述分析模块还用于将所述第一进度值和第二进度值中更接近所述参考进度值的一个值作为所述当前任务在当前时刻的进度值。
[0014]可选地,还包括多个监控模块,以及一个或多个管理模块,其中,所述监控模块,用于根据节点的计算资源空闲状况,向所述管理模块发送节点计算资源空闲信息;所述管理模块,用于根据所述监控模块提供的节点计算资源空闲信息,向所述从节点模块分配任务进度计算项目。
[0015]可选地,所述管理模块还用于将包含计算同一个进度分量的任务进度计算项目分配给选定的多个所述从节点模块;所述分析模块还用于根据所述选定的多个所述从节点模块计算得到的同一个进度分量的多个值的平均值或者其中一个值进行所述进度分量求和。
[0016]可选地,所述分析模块还用于向发起所述任务的客户端发送所述当前任务在当前时刻的进度值;或者,所述分析模块还用于向所述管理模块输出所述当前任务在当前时刻的进度值,所述管理模块还用于向发起所述任务的客户端发送所述当前任务在当前时刻的进度值。
[0017]根据本发明的技术方案,从多个影响维度同时考虑任务进度的计算,有助于提高任务进度计算的准确性。在分布式系统中采用多个计算机计算进度分量,有助于提高计算的准确性和可靠性。
【专利附图】

【附图说明】
[0018]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0019]图1是根据本发明实施例的计算任务进度的方法的基本步骤的示意图;
[0020]图2是根据本发明实施例的一种计算任务进度的系统的基本结构的示意图。
【具体实施方式】
[0021]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0022]本发明主要考虑分布式系统向客户端提供服务的情形。在本发明实施例中,从多个维度考虑影响任务进度的因素。例如在提供数据下载的服务中,影响客户端传输文件的进度的因素包括分布式系统的节点从数据库或缓存读取数据的速度以及节点向客户端传输时的网络速度,并且通常还包含其他的不可控因素。一般来说,根据提供服务的实际情况,一方面,可以确定若干影响任务进度的维度以及各个维度分别对于任务进度的影响程度,通常来说这些影响程度是不同的;另一方面,在系统处于常态的情况下任务在每次执行时具有相似的进度,例如在网络正常(即不发生明显阻塞等异常)的情况下,传输文件的速率是2M/S。又如对于CPU主频为2GHz,内存为IGB的个人计算机来说,从正常状态的网络下载并安装指定软件所需时间为25分钟。所以各个任务还具有一个进度参考值。
[0023]因此在本实施例中,在η个维度的影响下,在当前的采样时刻,任务Y的任务进度可以用式(一)表示=Yp=K1IHK2R+…+KnR (I)其中Yp表示任务Y的任务进度,KjR (j取1,2,……η)为一个维度影响下的进度分量,Kj是维度j的影响度,是一个小于I的正数,R为在当前采样时刻进度Y的进度参考值,η为维度数。R为变量,其值根据预先设定的参数在根据式(一)计算之前根据当前时刻计算得出。根据不同的任务类型有不同的设定方式。举例来说,对于传输文件的任务,可以先设定一个参考传输速率如2M/S,这样R的设定值即为时间的函数,例如当前时刻距传输起始时刻为IOS,传输的文件大小为80Μ,则当前时刻的R值为2M/SX 10S + 80MX 100%=25%。当然R也可以用剩余时间来表示,在本例中,R即为80M+2M/S-10S=30S。又如,对于安装软件的任务,可以对各种网络状态、各种客户端配置下的安装时长取一平均值,R的设定值同样为时间的函数,例如该平均值为30min,则当前时亥Ij为15min时的R值即为50%。[0024]对各个维度影响下的进度分量求和,再根据求和结果以及参考进度值即可以确定当前任务在当前时刻的进度值,最后将该进度值输出。上述过程如图1所示,图1是根据本发明实施例的计算任务进度的方法的基本步骤的示意图。
[0025]步骤Sll:计算当前采样时刻下对应于当前任务的每个预设影响维度的进度分量。
[0026]步骤S12:对各个预设影响维度的进度分量求和。即根据式(一)进行求和得到求和结果Yp ο
[0027]步骤S13:根据求和结果以及参考进度值确定当前任务在当前时刻的进度值。本步骤之后返回步骤S11,在下一个采样时刻重复上述流程。以下对于步骤S13再做出说明。
[0028]因为根据式(一)计算时,各个参数采用了预先的设定值,这种设定是根据任务的实际执行情况总结而得出,因此具有不准确的可能性。这样,在步骤S12中的求和结果Yp,可能与实际情况有较大偏差。此时可以将该Yp与参考进度作一比较,如二者相差太大,则舍弃ΥΡ,而将参考进度作为当前的实际进度。上述的是否相差太大的判断,也需根据实际经验来进行。在舍弃Yp的情况下,应当调整式(一)中的参数K」。通过不断的调整,可以使Yp比较接近参考进度,此时认为Yp能够比参考进度更接近实际情况,这样在步骤S13中就可以采用该Yp作为当前时刻的进度。
[0029]为了各个维度的影响的调节方式,可将&与其权重相乘,每个&的权重为Wj/WJW2+…+Wj+…+Wn,这样任务Y的任务进度可以用式(二)表示,在调整维度j的影响度时,可以同时调整Kj与Wj,并且在Yp比较接近参考进度的情况下单独调整Wj。可以看出调整Wj时可以对其他维度的影响有一定影响,这有助于优化各个维度的影响度。Yq= (W1K1IHW2K2R+-+WjKjR- +WnKnR) / (W^ff2+- +Wj+- +Wn) (二)
[0030]可以看出式(一)和式(二)都是多项式,对于多项式中的各项进度分量来说,可以由分布式系统中的多个计算机分别进行计算以提高计算效率,并且对于其中每一个进度分量来说,可以由多个计算机计算得到该项的多个值,对该多个值求平均可以得到更准确的值,因为不同的计算机得到的采样时间存在可能的差异使得R值各不相同。当然也可以仅采用该多个值中的一个值。得到多个值能够避免仅一台计算机计算时在该计算机故障的情况下得不到计算结果的现象,同样有助于保证可靠性。
[0031]图2是根据本发明实施例的一种计算任务进度的系统的基本结构的示意图。如图2所示,计算任务进度的系统20包括多个从节点模块11以及多个分析模块12 (图中各示出3个)。各个从节点模块和各个分析模块分布设置在分布式系统的各个节点中。
[0032]从节点模块11用于针对当前任务在执行过程中的每个采样时刻,分别计算当前采样时刻下对应于当前任务的每个预设影响维度的进度分量,进度分量为两个预设的因子的乘积,其中第一因子对应于预设影响维度,第二因子为当前采样时刻的当前任务的参考进度值;分析模块12用于对各个预设影响维度的进度分量求和,并根据求和结果以及参考进度值确定当前任务在当前时刻的进度值。第一因子可以是预设的维度影响值与该维度影响值的预设权重之积。
[0033]从节点模块11还可用于将预设的维度影响值作为第一因子计算所述乘积,分析模块12还可用于根据该乘积结果进行求和得到第一进度值。从节点模块11还可用于将预设的维度影响值与该维度影响值的预设权重之积作为第一因子计算上述乘积,分析模块12还可用于根据该乘积结果进行求和得到第二进度值;分析模块12还用于将第一进度值和第二进度值中更接近参考进度值的一个值作为当前任务在当前时刻的进度值。
[0034]计算任务进度的系统20还可包括多个监控模块以及一个或多个管理模块(图中未示出),同样分布设置在分布式系统中的各个节点中。监控模块用于根据节点的计算资源空闲状况,向管理模块发送节点计算资源空闲信息;管理模块用于根据监控模块提供的节点计算资源空闲信息,向从节点模块11分配任务进度计算项目。
[0035]管理模块还可用于将包含计算同一个进度分量的任务进度计算项目分配给选定的多个从节点模块11 ;分析模块12还可用于根据选定的多个从节点模块11计算得到的同一个进度分量的多个值的平均值或者其中一个值进行进度分量求和。
[0036]分析模块12还可用于向发起任务的客户端发送当前任务在当前时刻的进度值。或者分析模块12还可用于向管理模块输出当前任务在当前时刻的进度值,管理模块还用于向发起任务的客户端发送当前任务在当前时刻的进度值。
[0037]根据本发明实施例的技术方案,从多个影响维度同时考虑任务进度的计算,有助于提高任务进度计算的准确性。在分布式系统中采用多个计算机计算进度分量,有助于提高计算的准确性和可靠性。
[0038]以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。[0039]因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
[0040]还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
[0041]上述【具体实施方式】,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
【权利要求】
1.一种计算任务进度的方法,其特征在于,包括: 步骤A:针对当前任务在执行过程中的每个采样时刻,分别计算当前采样时刻下对应于所述当前任务的每个预设影响维度的进度分量,所述进度分量为两个预设的因子的乘积,其中第一因子对应于预设影响维度,第二因子为所述当前采样时刻的所述当前任务的参考进度值; 步骤B:对各个预设影响维度的进度分量求和,并根据求和结果以及所述参考进度值确定所述当前任务在当前时刻的进度值。
2.根据权利要求1所述的方法,其特征在于,所述第一因子为预设的维度影响值与该维度影响值的预设权重之积。
3.根据权利要求1所述的方法,其特征在于, 在所述步骤A中,将预设的维度影响值作为所述第一因子计算所述乘积,并在所述步骤B中根据该乘积结果进行所述求和得到第一进度值;以及在所述步骤A中,将预设的维度影响值与该维度影响值的预设权重之积作为所述第一因子计算所述乘积,并在所述步骤B中根据该乘积结果进行所述求和得到第二进度值; 并且在所述步骤B中,将所述第一进度值和第二进度值中更接近所述参考进度值的一个值作为所述当前任务在当前时刻的进度值。
4.根据权利要求1,2或3所述的方法,其特征在于,在所述步骤A中,对于每个预设影响维度的进度分量,由分布式计算系统中的多个计算机分别计算出多个值;在所述步骤B中,根据所述多个值中的一个值计算,或者根据所述多个值的平均值计算。
5.一种计算任务进度的系统,其特征在于,包括多个从节点模块,以及多个分析模块,其中: 所述从节点模块,用于针对当前任务在执行过程中的每个采样时刻,分别计算当前采样时刻下对应于所述当前任务的每个预设影响维度的进度分量,所述进度分量为两个预设的因子的乘积,其中第一因子对应于预设影响维度,第二因子为所述当前采样时刻的所述当前任务的参考进度值; 所述分析模块,用于对各个预设影响维度的进度分量求和,并根据求和结果以及所述参考进度值确定所述当前任务在当前时刻的进度值。
6.根据权利要求5所述的系统,其特征在于,所述第一因子为预设的维度影响值与该维度影响值的预设权重之积。
7.根据权利要求5所述的系统,其特征在于, 所述从节点模块还用于将预设的维度影响值作为所述第一因子计算所述乘积,所述分析模块还用于根据该乘积结果进行所述求和得到第一进度值; 所述从节点模块还用于将预设的维度影响值与该维度影响值的预设权重之积作为所述第一因子计算所述乘积,所述分析模块还用于根据该乘积结果进行所述求和得到第二进度值; 所述分析模块还用于将所述第一进度值和第二进度值中更接近所述参考进度值的一个值作为所述当前任务在当前时刻的进度值。
8.根据权利要求5,6或7所述的系统,其特征在于,还包括多个监控模块,以及一个或多个管理模块,其中,所述监控模块,用于根据节点的计算资源空闲状况,向所述管理模块发送节点计算资源空闲信息; 所述管理模块,用于根据所述监控模块提供的节点计算资源空闲信息,向所述从节点模块分配任务进度计算项目。
9.根据权利要求8所述的系统,其特征在于, 所述管理模块还用于将包含计算同一个进度分量的任务进度计算项目分配给选定的多个所述从节点模块; 所述分析模块还用于根据所述选定的多个所述从节点模块计算得到的同一个进度分量的多个值的平均值或者其中一个值进行所述进度分量求和。
10.根据权利要求8所述的系统,其特征在于, 所述分析模块还用于向发起所述任务的客户端发送所述当前任务在当前时刻的进度值; 或者,所述分析模块还用于向所述管理模块输出所述当前任务在当前时刻的进度值,所述管理模块还用于向发 起所述任务的客户端发送所述当前任务在当前时刻的进度值。
【文档编号】G06F9/46GK103631646SQ201310626384
【公开日】2014年3月12日 申请日期:2013年11月29日 优先权日:2013年11月29日
【发明者】陈伟 申请人:北京京东尚科信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1