一种任务自动执行方法及装置制造方法及图纸

技术编号:15638954 阅读:171 留言:0更新日期:2017-06-15 20:28
本发明专利技术提出了一种任务自动执行方法及装置,包括获取待执行任务,所述待执行任务包括执行事件和响应于所述执行事件的关联事件,以及运行环境参数;根据所述运行环境参数连接用于执行所述待执行任务的目标设备;向所述目标设备发送所述执行事件对应的控制指令以使得所述目标设备能够执行所述执行事件;获取执行结果;所述执行结果为来自所述目标设备的执行所述执行事件的结果;根据所述执行结果执行响应于所述执行事件的关联事件。本发明专利技术可支持需要与其它设备交互的复杂的任务流程的执行。

【技术实现步骤摘要】
一种任务自动执行方法及装置
本专利技术涉及计算机领域,具体涉及一种任务自动执行方法及装置。
技术介绍
在电信领域或IP领域,经常要与大量机器交互以进行批量作业。现有技术中可以通过Expectit或者Perl的expect模块实现交互的任务,但是Expectit和Perl的expect模块均有其缺点。Perl的expect模块的缺点为:(1)不能与java或者Junit很好的集成;(2)安装相对复杂:除了安装perl,还需要另外安装expect模块以及其它相关模块。一般需要通过源码编译安装。相比java,在跨平台(unix、linux、windows)方面,处于劣势;(3)只提供最基础的发送命令跟匹配返回的功能,难以实现其他复杂的逻辑,例如单独设计一个或多个带分支执行的命令流程文件或数据;(4)在匹配返回的终端结果的时候,如果关键字过于简单,例如命令提示符(#$>),可能会由于返回结果里面带有多个这样的关键字,而匹配了第一个,然后就发送下一个命令,这样会导致不可预知的错误。Expectit的缺点为:(1)只提供最基础的发送命令跟匹配返回的功能,难以实现其他复杂的逻辑,例如单独设计一个或多个带分支执行的命令流程文件或数据;(2)在匹配返回的终端结果的时候,如果关键字过于简单,例如命令提示符(#$>),可能会由于返回结果里面带有多个这样的关键字,而匹配了第一个,然后就发送下一个命令,这样会导致不可预知的错误。
技术实现思路
为了解决上述技术问题,本专利技术提出了一种任务自动执行方法及装置。本专利技术是以如下技术方案实现的:一种任务自动执行方法,包括:获取待执行任务,所述待执行任务包括执行事件和响应于所述执行事件的关联事件,以及运行环境参数;根据所述运行环境参数连接用于执行所述待执行任务的目标设备;向所述目标设备发送所述执行事件对应的控制指令以使得所述目标设备能够执行所述执行事件;获取执行结果;所述执行结果为来自所述目标设备的执行所述执行事件的结果;根据所述执行结果执行响应于所述执行事件的关联事件。进一步地,所述执行事件包括执行参数和执行指令,所述向所述目标设备发送所述执行事件对应的控制指令以使得所述目标设备能够执行所述执行事件包括:根据执行参数获取所述执行事件的实际参数;根据所述实际参数和所述执行指令得到所述执行事件对应的控制指令;将所述控制指令发送至目标设备。进一步地,所述向所述目标设备发送所述执行事件对应的控制指令以使得所述目标设备能够执行所述执行事件之后,还包括:若在预设的时间阈值之内未收到所述执行事件的执行结果,则进行超时处理。进一步地,所述获取执行结果包括:运行第一线程,所述第一线程用于获取目标设备的返回内容;运行第二线程,所述第二线程用于每隔预设时间判断所述返回内容是否有新增;若没有,则判断已有的返回内容的最后一段字符串是否能够与所述执行事件的预期结果匹配成功;若是,则获取所述匹配结果并将所述匹配结果作为获取到的执行结果。进一步地,所述根据所述执行结果执行响应于所述执行事件的关联事件包括:若所述执行结果为字符串,则查找与所述字符串对应的关联事件;继续执行所述关联事件。进一步地,所述根据所述执行结果执行响应于所述执行事件的关联事件包括:若所述执行结果为数字,则查找与所述数字对应的关联事件;继续执行所述关联事件。一种任务自动执行装置,包括:待执行任务获取模块,用于获取待执行任务,所述待执行任务包括执行事件和响应于所述执行事件的关联事件,以及运行环境参数;目标设备连接模块,用于根据所述运行环境参数连接用于执行所述待执行任务的目标设备;控制指令发送模块,用于向所述目标设备发送所述执行事件对应的控制指令以使得所述目标设备能够执行所述执行事件;执行结果获取模块,用于获取执行结果;所述执行结果为来自所述目标设备的执行所述执行事件的结果;关联事件执行模块,用于根据所述执行结果执行响应于所述执行事件的关联事件。进一步地,所述控制指令发送模块包括:实际参数获取单元,用于根据执行参数获取所述执行事件的实际参数;控制指令得到单元,根据所述实际参数和所述执行指令得到所述执行事件对应的控制指令;发送单元,用于将所述控制指令发送至目标设备。进一步地,所述执行结果获取模块包括:第一线程运行单元,用于运行第一线程,所述第一线程用于获取目标设备的返回内容;第二线程运行单元,用于运行第二线程,所述第二线程用于每隔预设时间判断所述返回内容是否有新增;若没有,则判断已有的返回内容的最后一段字符串是否能够与所述执行事件的预期结果匹配成功;若是,则获取所述匹配结果并将所述匹配结果作为获取到的执行结果。进一步地,还包括:超时处理模块,用于若在预设的时间阈值之内未收到所述执行事件的执行结果,则进行超时处理。本专利技术的有益效果是:本专利技术提出了一种任务自动执行方法及装置。本专利技术具有如下优点:(1)本专利技术中的技术方案其功能可以集成于软件以用于主机服务器/网络设备的自动化运维;(2)可以自动登录主机服务器/网络设并精确获取执行事件的执行结果;(3)支持发出的控制指令可以是参数化、动态的,或者是经过某些运算后的;(4)支持多分支的任务执行流程,比如根据执行结果的数的大小或者执行结果中的字符来控制下一步需要执行运行哪个关联事件,关联事件作为一种执行事件也可以关联其它关联事件,从而实现复杂的任务执行流程。(5)不同执行阶段可以加载不同的java类去解析和处理,降低不同执行事件之间的耦合度。(6)提供超时处理,鲁棒性更高。附图说明图1是实施例提供的一种任务自动执行方法流程图;图2是实施例中提供的控制指令生成与发送方法图;图3是实施例中提供的一种任务自动执行装置的框图;图4是实施例中提供的控制指令发送模块框图;图5是实施例中提供的执行结果获取模块框图。具体实施方法为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。一种任务自动执行方法,如图1所示,包括:S101.获取待执行任务,所述待执行任务包括执行事件和响应于所述执行事件的关联事件,以及运行环境参数。具体的,所述关联事件也可以为执行事件。具体地,所述待执行任务可以以流程控制文件的方式记录。所述流程控制文件用于定义待执行任务,具体包括待执行任务中的执行事件,所述执行事件可以包括要发送的命令、执行参数、用于标记是否需要打印日志的开关、超时处理的时间阈值以及关联事件。S102.根据所述运行环境参数连接用于执行所述待执行任务的目标设备。具体地,可以使用com.jcraft.jsch实现与目标设备的ssh连接,获取tcp连接的输入输出流。具体地,还可以使用org.apache.commons.net.tel本文档来自技高网
...
一种任务自动执行方法及装置

【技术保护点】
一种任务自动执行方法,其特征在于,包括:获取待执行任务,所述待执行任务包括执行事件和响应于所述执行事件的关联事件,以及运行环境参数;根据所述运行环境参数连接用于执行所述待执行任务的目标设备;向所述目标设备发送所述执行事件对应的控制指令以使得所述目标设备能够执行所述执行事件;获取执行结果;所述执行结果为来自所述目标设备的执行所述执行事件的结果;根据所述执行结果执行响应于所述执行事件的关联事件。

【技术特征摘要】
1.一种任务自动执行方法,其特征在于,包括:获取待执行任务,所述待执行任务包括执行事件和响应于所述执行事件的关联事件,以及运行环境参数;根据所述运行环境参数连接用于执行所述待执行任务的目标设备;向所述目标设备发送所述执行事件对应的控制指令以使得所述目标设备能够执行所述执行事件;获取执行结果;所述执行结果为来自所述目标设备的执行所述执行事件的结果;根据所述执行结果执行响应于所述执行事件的关联事件。2.根据权利要求1所述的方法,其特征在于,所述执行事件包括执行参数和执行指令,所述向所述目标设备发送所述执行事件对应的控制指令以使得所述目标设备能够执行所述执行事件包括:根据执行参数获取所述执行事件的实际参数;根据所述实际参数和所述执行指令得到所述执行事件对应的控制指令;将所述控制指令发送至目标设备。3.根据权利要求1所述的方法,其特征在于,所述向所述目标设备发送所述执行事件对应的控制指令以使得所述目标设备能够执行所述执行事件之后,还包括:若在预设的时间阈值之内未收到所述执行事件的执行结果,则进行超时处理。4.根据权利要求1所述的方法,其特征在于,所述获取执行结果包括:运行第一线程,所述第一线程用于获取目标设备的返回内容;运行第二线程,所述第二线程用于每隔预设时间判断所述返回内容是否有新增;若没有,则判断已有的返回内容的最后一段字符串是否能够与所述执行事件的预期结果匹配成功;若是,则获取所述匹配结果并将所述匹配结果作为获取到的执行结果。5.根据权利要求1所述的方法,其特征在于,所述根据所述执行结果执行响应于所述执行事件的关联事件包括:若所述执行结果为字符串,则查找与所述字符串对应的关联事件;继续执行所述关联事件。6.根据权利要求1...

【专利技术属性】
技术研发人员:李俊
申请(专利权)人:广州市申迪计算机系统有限公司
类型:发明
国别省市:广东,44

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

1