一种计算分布式环境长任务进度的方法技术

技术编号:14444636 阅读:62 留言:0更新日期:2017-01-15 09:28
本发明专利技术涉及任务监控技术领域,特别是一种计算分布式环境长任务进度的方法。所述方法包括:针对各类型的长任务生命周期设置多个执行阶段,并赋予每个阶段对应比例的数值;控制节点接受用户请求,创建长任务并根据实际情况分解成多个子任务,同时保存;控制节点将子任务发送到实现节点;实现节点接收并执行子任务,并根据设置的执行阶段向控制节点汇报子任务完成进度;控制节点接收各子任务进度并更新,同时定时扫描正在执行的长任务并获取其所有子任务的进度信息,根据公式计算得出长任务进度并更新;用户发送请求获取长任务的最终进度。本发明专利技术有效且准确计算出长任务的进度信息并展示,提高系统的用户体验度。

【技术实现步骤摘要】

本专利技术涉及任务监控
,特别是一种计算分布式环境长任务进度的方法
技术介绍
在软件系统开发过程中,经常需要选择一个系统调用过程是采用同步方式还是采用异步方式。所谓的同步就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。而异步的概念则和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。对于一个长任务操作来说,在很多时候,由于异步调用方式提高了用户的体验度,且带来了性能的提升而被选择。选择异步方式就必须有一种回调机制和方法来实时监控长任务执行的进度信息。业界很多都是采用了假数据来动态显示任务执行进度。这种方式在很多时候导致进度信息与任务实际执行过程完全不匹配,容易产生瞬间变成最终状态的不好效果。
技术实现思路
本专利技术解决的技术问题在于提出一种计算分布式环境长任务进度的方法,解决任务执行过程中实际进度与显示进度不匹配的情况,能够有效且准确计算出长任务的进度信息并展示,尤其适用于可以分解成多个相同子任务的分布式系统长任务。本专利技术解决上述技术问题的技术方案是:所述的方法包括如下步骤:步骤1:针对各类型的长任务生命周期设置多个执行阶段,并赋予每个阶段对应比例的数值;步骤2:由控制节点接受用户请求,创建长任务并根据实际情况分解成多个子任务,同时保存;步骤3:由控制节点将子任务发送到实现节点;步骤4:由实现节点接收并执行子任务,并根据设置的执行阶段向控制节点汇报子任务完成进度;步骤5:由控制节点接收各子任务进度并更新,同时定时扫描正在执行的长任务并获取其所有子任务的进度信息,根据公式计算得出长任务进度并更新;步骤6:用户发送请求获取长任务的最终进度。所述的步骤1具体是指:事先预计该类型的长任务中子任务典型的完成里程点;进一步预估完成各个里程点所占子任务总过程的比例,并分别设定数值;最后设定整个子任务完成的最终数值为特定数值。所述的里程点可以设置为A,B,C三点;里程点A完成数值为4,继续完成里程点B则数值为7;特定数值为10。所述的步骤2中,由控制节点指实现长任务逻辑操作的服务;更进一步包括:将长任务保存到长任务表中,子任务保存到子任务表中并依赖于长任务。所述的步骤4中,所述的实现节点接受控制节点分派的子任务并实际执行;更进一步包括:在子任务执行的流程中,每完成一个里程点则将其对应的里程点数值上报到控制节点;控制节点接受到子任务进度汇报信息后,将进度值更新到对应子任务数据表中。所述的定时扫描,是指使用定时线程定时查询长任务数据表,针对正在进行的长任务继续查找其所有子任务的进度值,并根据公式计算得出长任务进度,最后更新数据库;所述的公式为:(1)当所有长任务的N个子任务正常执行中时,长任务进度=长任务N个子任务的进度值之和/(10*N);(2)当长任务N个子任务中有M个子任务执行失败时,长任务进度=(长任务N-M个子任务的进度值之和+10*M)/(10*N)。所述的定时线程,是由控制节点定时器提供。本专利技术方案的有益效果如下:本专利技术的方法将长任务分解成多个子任务,接收所有子任务执行进度,再计算长任务的执行进度,可以简单有效的计算出长任务的进度信息并展示,并且更加适用于可以分解成多个相同子任务的分布式系统长任务。特别的,当将此方法运用到云平台的应用自动部署领域时,可以满足用户对应用自动部署的实时监控,提升了用户体验度。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术的流程图;图2位本专利技术模块图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出实质性创造的类似方法实施例,都属于本专利技术保护的范围。请参见图1、图2,为本专利技术实施例提供的一种计算分布式环境长任务进度的方法,这里以云平台应用自动部署为例进行说明。首先我们定时云平台中应用自动部署长任务的执行里程点,举例如下:publicenumAppVmDeployState{//虚拟机进行应用部署过程中的中间状态APP_FINISH_APP_DBINFO(″应用数据库记录创建已完成,正进行应用虚拟机创建″,0),VM_FINISH_VM_CREATE(″应用虚拟机创建已完成,虚拟机正进行软件安装″,4),VM_FINISH_SOFTWARE_INSTALL(″虚拟机已完成软件安装,正进行应用配置″,7),VM_FINISH_APP_CONFIG(″虚拟机已完成应用配置,正进行最后准备″,9),VM_FINISH_ALL(″虚拟机已完成应用部署″,10),//发布应用过程中,发布失败的具体原因value>=70APP_DEPLOY_FAILED(″虚拟机应用部署失败″,70),APP_DEPLOY_FAILED_REASONl(″虚拟机创建超时(10分钟)″,71),APP_DEPLOY_FAILED_REASON2(″虚拟机未正确运行qemu-agent服务或判断超时(60s)″,72),APP_DEPLOY_FAILED_REASON3(″虚拟机挂载存储池盘失败″,73),APP_DEPLOY_FAILED_REASON4(″虚拟机安装软件包异常退出″,74),APP_DEPLOY_FAILED_REASON5(″虚拟机安装软件包超时(30分钟)″,75),APP_DEPLOY_FAILED_REASON6(″虚拟机执行应用配置脚本失败″,76),APP_DEPLOY_FAILED_REASON7(″虚拟机配置应用超时(10分钟)″,77),APP_DEPLOY_FAILED_REASON8(″虚拟机不存在″,78),APP_DEPLOY_FAILED_REASON9(″宿主机上写入xmlFile(rbd挂载文件)失败″,79),APP_DEPLOY_FAILED_REASON10(″虚拟机创建过程中,执行Thread.sleep异常″,80),APP_DEPLOY_FAILED_REASON11(″获取虚拟机中执行软件包安装的进程pid异常″,81),APP_DEPLOY_FAILED_REASON12(″获取虚拟机中执行应用配置的进程pid异常″,82),APP_DEPLOY_FAILED_REASON13(″获取应用虚拟机(linux)中执行mount存储池进程pid异常″,83),APP_DEPLOY_FAILED_REASON14(″虚拟机(linux)mount存储池进程异常退出″,84),APP_DEPLOY_FAILED_REASON15(″虚拟机(linux)mount存储池超时(3s)″,85),APP_DEPLOY_FAILED_REASON16(″调用计算组件获取应用虚拟机信息失败″,86),APP_DEPLOY_FAILED_REASON17(″虚拟机绑定浮动IP失败″,87);……之后用户发送应用自动部署请求,传递应用部署所需要的相关参数到控制节点,控制节点接受并创建长任务,分解成多个子任务并保存数据库,具体实现如下(部分):publicAppCreateRespons本文档来自技高网...
一种计算分布式环境长任务进度的方法

【技术保护点】
一种计算分布式环境长任务进度的方法,其特征在于,所述的方法包括如下步骤:步骤1:针对各类型的长任务生命周期设置多个执行阶段,并赋予每个阶段对应比例的数值;步骤2:由控制节点接受用户请求,创建长任务并根据实际情况分解成多个子任务,同时保存;步骤3:由控制节点将子任务发送到实现节点;步骤4:由实现节点接收并执行子任务,并根据设置的执行阶段向控制节点汇报子任务完成进度;步骤5:由控制节点接收各子任务进度并更新,同时定时扫描正在执行的长任务并获取其所有子任务的进度信息,根据公式计算得出长任务进度并更新;步骤6:用户发送请求获取长任务的最终进度。

【技术特征摘要】
1.一种计算分布式环境长任务进度的方法,其特征在于,所述的方法包括如下步骤:步骤1:针对各类型的长任务生命周期设置多个执行阶段,并赋予每个阶段对应比例的数值;步骤2:由控制节点接受用户请求,创建长任务并根据实际情况分解成多个子任务,同时保存;步骤3:由控制节点将子任务发送到实现节点;步骤4:由实现节点接收并执行子任务,并根据设置的执行阶段向控制节点汇报子任务完成进度;步骤5:由控制节点接收各子任务进度并更新,同时定时扫描正在执行的长任务并获取其所有子任务的进度信息,根据公式计算得出长任务进度并更新;步骤6:用户发送请求获取长任务的最终进度。2.根据权利要求1所述的方法,其特征在于,所述的步骤1具体是指:事先预计该类型的长任务中子任务典型的完成里程点;进一步预估完成各个里程点所占子任务总过程的比例,并分别设定数值;最后设定整个子任务完成的最终数值为特定数值。3.根据权利要求2所述的方法,其特征在于,所述的里程点可以设置为A,B,C三点;里程点A完成数值为4,继续完成里程点B则数值为7;特定数值为10。4.根据权利要求1所述的方法,其特征在于,所述的步骤2中,由控制节点指实现长任务逻辑操作的服务;更进一步包括:将长任务保存到长任务表中,子任务保存到子任务表中并依赖于长任务。5.根据权利要求2所述的方法,其特征在于,所述的步骤2中,由控制节点指实现长任务逻辑操作的服务;更进一步包括:将长任务保存到长任务表中,子任务保存到子任务表中并依赖于长任务。6.根据权利要求3所述的方法,其特征在于,所述的步骤2中,由控制节点指实现长任务逻辑操作的服务;更进一步包括:将长任务...

【专利技术属性】
技术研发人员:熊梦杨松季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东;44

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

1