目标任务的执行方法及系统技术方案

技术编号:19388720 阅读:22 留言:0更新日期:2018-11-10 01:58
本发明专利技术公开了一种目标任务的执行方法及系统。其中,该方法包括:获取目标任务,其中,目标任务中配置有多个执行步骤,每个执行步骤与目标脚本关联,或者与目标脚本中的函数相关联;将目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务;获取执行日志和执行结果。本发明专利技术解决了在系统开发过程中,由于单任务严重耦合导致无法分步骤执行任务,使得任务的执行效率和重用效率较低的技术问题。

Implementation method and system of target task

The invention discloses a method and a system for executing a target task. The method includes: acquiring the target task, in which the target task is configured with multiple execution steps, each execution step is associated with the target script, or with the function in the target script; sending the target task to the target execution machines of multiple distributed execution machines to perform the said target task; acquiring execution; Logs and execution results. The invention solves the technical problem that in the process of system development, the task can not be performed step by step due to the serious coupling of single task, and the execution efficiency and reuse efficiency of the task are low.

【技术实现步骤摘要】
目标任务的执行方法及系统
本专利技术涉及软件系统集成领域,具体而言,涉及一种目标任务的执行方法及系统。
技术介绍
在计算机软件开发的过程中,一个大型的计算机软件通常由多个人或者多个部门合作完成。为了节省人力,提高生产效率,软件开发中的很多流程和过程,往往需要借助第三方工具软件来完成。例如集成、构建、测试与回归测试往往使用.sh脚本,python脚本等工具将一些常用指令写成一个命令集,然后使用crontab或者jenkins等第三方工具来触发这些脚本的执行。虽然使用crontab定时触发这些脚本,一定程度上能够实现这些脚本的自动化运行。但是crontab只能定时触发这些脚本,不能够按需(需要执行时就执行)来执行。例如当新的软件功能开发完成后,有时候需要立刻打包与构建整个工程,crontab并不具有该功能,只能在设定的时刻才会触发执行。并且使用crontab的时候,当脚本执行出错时,出错的日志信息不能直观输出和查看,需要输出或者重定向到文件才能查阅。当构建或者执行出错时,排查问题需要浪费大量的人力。另一方面,对于Jenkins等持续集成软件,虽然可以将.sh脚本或者python直接挂载在平台上,脚本输出的log也可以在平台上查看,提供各种触发方式,但是jenkins对于脚本的支持是文件级的,只能运行整个文件来完成构建任务。通常我们在系统开发过程中,由于任务的集合特性,使得在执行任务时,任务的耦合性较为严重,导致无法分步骤执行任务,使得任务的执行效率和重用效率较低。另外,当前在系统执行任务时,可能需要多台机器配合完成,这样就需要将任务分布式部署在不同的机器上,但是当前的crontab并不具有这一功能,而jenkins虽然提供了分布式部署的功能,但是jenkins分布式部署本身一定的学习成本,掌握有一定的门槛。当平台管理的执行任务有几十个,甚至上百个的时候,jenkins对任务的管理与展示显得不够清晰,很多用户无法使用,使用成本较高。针对上述的在系统开发过程中,由于单任务严重耦合导致无法分步骤执行任务,使得任务的执行效率和重用效率较低的技术问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种目标任务的执行方法及系统,以至少解决在系统开发过程中,由于单任务严重耦合导致无法分步骤执行任务,使得任务的执行效率和重用效率较低的技术问题。根据本专利技术实施例的一个方面,提供了一种目标任务的执行方法,包括:获取目标任务,其中,所述目标任务中配置有多个执行步骤,每个所述执行步骤与目标脚本关联,或者与所述目标脚本中的函数相关联;将所述目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务;获取执行日志和执行结果。进一步地,获取目标任务包括:获取所述目标任务的任务参数,,其中,任务参数至少包括下述之一:执行信息、触发方式、执行时间、通知方式、目标通知人信息,其中,所述执行信息对应于所述多个执行步骤进一步地,,所述通知方式至少包括:弹窗通知、插件通知。进一步地,所述触发方式包括下述至少之一:挂钩hook触发、手动触发、定时触发,其中,所述hook触发为根据携带有所述目标任务的标识ID的链接信息,触发执行所述目标任务,所述手动触发为接收用户对图形用户界面中控件的操作来触发执行所述目标任务,所述定时触发为设置目标时间间隔来定时触发执行所述目标任务。进一步地,将所述目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务包括:根据所述任务参数,将所述目标任务分发至所述目标执行机中。进一步地,所述执行方法还包括:根据用户上传的文件包,确定所述目标脚本。进一步地,在获取执行日志和执行结果之后,还包括:获取所述目标脚本的脚本插件;根据所述脚本插件,通过预设输出方式输出所述执行日志和/或所述执行结果,其中,所述预设输出方式至少包括:图形化输出方式和表格化输出方式,其中,若所述预设输出方式为所述图形化输出方式时,通过至少一个图形用户界面UI组件来展示所述执行日志和/或所述执行结果。进一步地,获取目标任务包括:获取所述目标任务中每个执行步骤的执行顺序和运行方式,其中,所述运行方式至少包括下述之一:并行运行方式和串行运行方式;接收每个目标脚本中的配置参数和关键字参数,其中,所述配置参数为每个执行步骤的执行参数,所述关键字参数存储执行步骤所对应的执行结果;根据所述配置参数和所述关键字参数,每个所述执行步骤关联所述目标脚本或者所述目标脚本中的函数。进一步地,上述执行方法还包括:判断所述目标执行机是否为管理机;若所述目标执行机为管理机,检测是否存在上传的新目标脚本,若检测到存在上传的新目标脚本,将所述新目标脚本推送至所述多台分布式执行机的每个分布式执行机中;若所述目标执行机不是管理机,在预定间隔时长后从所述管理机中提取新上传的目标脚本。根据本专利技术实施例的另一方面,还提供了一种分布式装置的任务执行系统,包括:脚本管理器,用于获取目标脚本;计划管理器,用于获取目标任务,并接收为所述目标任务配置的多个执行步骤,其中,每个所述执行步骤关联所述目标脚本或者所述目标脚本中的函数;计划调度器,用于获取任务参数,并根据所述任务参数分发所述目标任务至多台分布式执行机的目标执行机中;存储器,用于存储执行日志和执行结果,其中,所述执行日志包括所述目标执行机在执行多个执行步骤后时记录的目标数据和执行时间数据。进一步地,所述计划管理器包括:分类管理器,设置目标任务的类型;计划数据管理器,用于为所述目标任务设置任务参数,其中,所述任务参数至少包括下述之一:执行信息、触发方式、执行时间、通知方式、目标通知人信息,其中,所述执行信息对应于所述多个执行步骤,所述通知方式至少包括:弹窗通知、插件通知,所述目标通知人信息包括目标通知人的姓名信息和联系方式,所述触发方式包括下述至少之一:挂钩hook触发、手动触发、定时触发,其中,所述挂钩hook触发为提供携带有所述目标任务的标识ID的链接信息,触发执行所述目标任务,所述手动触发为接收用户对图形用户界面中控件的操作来触发执行所述目标任务,所述定时触发为设置目标时间间隔来定时触发执行所述目标任务。进一步地,所述计划调度器包括:计划展示模块,用于通过预设展示方式展示用户配置的目标任务,其中,预设展示方式至少包括web页面或者图形UI;计划分发模块,用于获取任务参数,并根据所述任务参数分发所述目标任务至多台分布式执行机的目标执行机中;计划执行模块,用于控制所述目标执行机执行所述目标任务,得到执行结果。进一步地,还包括:日志展示模块,用于通过调用所述目标脚本的脚本插件,并根据所述脚本插件,通过预设输出方式输出所述执行日志,其中,所述预设输出方式至少包括:图形化输出方式和/或表格化输出方式,其中,若所述预设输出方式为所述图形化输出方式时,通过至少一个图形用户界面UI组件来展示所述执行日志和/或所述执行结果;结果展示模块,用于通过调用所述目标脚本的脚本插件,并根据所述脚本插件,通过预设输出方式输出所述执行结果。进一步地,还包括:消息通知器,用于在多个预定执行阶段,通过调用对应的通知插件发送通知消息,其中,所述多个预定执行阶段至少包括:目标任务开始执行时间段、目标任务结束执行时间段、目标任务取消执行时间段。在本专利技术实施例中,可本文档来自技高网
...

【技术保护点】
1.一种目标任务的执行方法,其特征在于,包括:获取目标任务,其中,所述目标任务中配置有多个执行步骤,每个所述执行步骤与目标脚本关联,或者与所述目标脚本中的函数相关联;将所述目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务;获取执行日志和执行结果。

【技术特征摘要】
1.一种目标任务的执行方法,其特征在于,包括:获取目标任务,其中,所述目标任务中配置有多个执行步骤,每个所述执行步骤与目标脚本关联,或者与所述目标脚本中的函数相关联;将所述目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务;获取执行日志和执行结果。2.根据权利要求1所述的执行方法,其特征在于,获取目标任务包括:获取所述目标任务的任务参数,其中,任务参数至少包括下述之一:执行信息、触发方式、执行时间、通知方式、目标通知人信息,其中,所述执行信息对应于所述多个执行步骤。3.根据权利要求2所述的执行方法,其特征在于,所述通知方式至少包括:弹窗通知、插件通知。4.根据权利要求2所述的执行方法,其特征在于,所述触发方式包括下述至少之一:挂钩hook触发、手动触发、定时触发,其中,所述hook触发为根据携带有所述目标任务的标识ID的链接信息,触发执行所述目标任务,所述手动触发为接收用户对图形用户界面中控件的操作来触发执行所述目标任务,所述定时触发为设置目标时间间隔来定时触发执行所述目标任务。5.根据权利要求2所述的执行方法,其特征在于,将所述目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务包括:根据所述任务参数,将所述目标任务分发至所述目标执行机中。6.根据权利要求1所述的执行方法,其特征在于,所述执行方法还包括:根据用户上传的文件包,确定所述目标脚本。7.根据权利要求1所述的执行方法,其特征在于,获取目标任务包括:获取所述目标任务中每个执行步骤的执行顺序和运行方式,其中,所述运行方式至少包括下述之一:并行运行方式和串行运行方式;接收每个目标脚本中的配置参数和关键字参数,其中,所述配置参数为每个执行步骤的执行参数,所述关键字参数存储执行步骤所对应的执行结果;根据所述配置参数和所述关键字参数,每个所述执行步骤关联所述目标脚本或者所述目标脚本中的函数。8.根据权利要求1所述的执行方法,其特征在于,还包括:判断所述目标执行机是否为管理机;若所述目标执行机为管理机,检测是否存在上传的新目标脚本,若检测到存在上传的新目标脚本,将所述新目标脚本推送至所述多台分布式执行机的每个分布式执行机中;若所述目标执行机不是管理机,在预定间隔时长后从所述管理机中提取新上传的目标脚本。9.根据权利要求1所述的执行方法,其特征在于,在获取执行日志和执行结果之后,还包括:获取所述目标脚本的脚本插件;根据所述脚本插件,通过预设输出方式输出所述执行日志和/或所述执行结果,其中,所述预设输出方式至少包括:图形化输出方式和表格化输出方式,其中,若所述预设输出方式为所述图形化输出方式时,通过至少一个图形用户...

【专利技术属性】
技术研发人员:郑重李萌高健董芯萌谷稳稳
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江,33

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

1