CN108776604A - 目标任务的执行方法及系统 - Google Patents

目标任务的执行方法及系统 Download PDF

Info

Publication number
CN108776604A
CN108776604A CN201810499957.3A CN201810499957A CN108776604A CN 108776604 A CN108776604 A CN 108776604A CN 201810499957 A CN201810499957 A CN 201810499957A CN 108776604 A CN108776604 A CN 108776604A
Authority
CN
China
Prior art keywords
execution
task
target
script
goal task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810499957.3A
Other languages
English (en)
Inventor
郑重
李萌
高健
董芯萌
谷稳稳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201810499957.3A priority Critical patent/CN108776604A/zh
Publication of CN108776604A publication Critical patent/CN108776604A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

目标任务的执行方法及系统
技术领域
本发明涉及软件系统集成领域,具体而言,涉及一种目标任务的执行方法及系统。
背景技术
在计算机软件开发的过程中,一个大型的计算机软件通常由多个人或者多个部门合作完成。为了节省人力,提高生产效率,软件开发中的很多流程和过程,往往需要借助第三方工具软件来完成。例如集成、构建、测试与回归测试往往使用.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是根据本发明实施例的目标任务的执行方法的流程图;
图2是根据本发明实施例的一种可选的分布式装置分发脚本的方法示意图;
图3是根据本发明实施例的一种分布式装置的任务执行系统的示意图;
图4是根据本发明实施例一种可选的任务执行系统的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于用户理解本发明,下面对本发明各项实施例中涉及的部分术语或名词做出解释:
挂钩,hook,通过系统级调用,根据自行定义的提取内容,执行相应的动作。
本发明中,执行目标任务或者计划的机器,可以分布式部署在不同的机器上,部署的过程只需要解压对应的安装包,执行启动脚本即可,无需安装和配置。
本发明下述各项实施例可以应用于终端的系统文件开发中,用户可以上传自己编写的脚本,而平台在接收到这些脚本后,可以将脚本作为插件供所有的分布式执行机使用,同时,本发明下述实施例中可以以计划的形式来管理各项任务(例如构建任务或者测试任务),并将任务分为多个步骤来执行,每个步骤可以关联上传的脚本或者关联上传的脚本中函数,对脚本的支持可以达到函数级,并不会仅仅停留在文件级别的支持,支持任务执行力度更大,任务的各个步骤执行的速度会更快。而且本发明下述各项实施例中的目标任务所对应的各个执行步骤,可以被预先确定执行顺序和执行类型,然后在执行时可以按照执行顺序顺序执行各项步骤,得到执行结果。并且本发明中还可以通过图形化或者表格化的方式输出执行的结果。下面对本发明各项实施例进行说明。
实施例一
根据本发明实施例,提供了一种目标任务的执行方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的目标任务的执行方法的流程图,如图1所示,该方法包括步骤S102至步骤S106,其中,
步骤S102,获取目标任务,其中,目标任务中配置有多个执行步骤,每个执行步骤与目标脚本关联,或者与目标脚本中的函数相关联。
其中,本发明对于目标任务的具体类型和具体内容不做限定,其可以是任务在各项系统平台上建立的任务。而目标脚本可以是用户自行开发的脚本,用户可以将文件包上传至系统平台上,从而得到目标脚本,脚本中不仅包括执行文件的内容,还可以包括各种函数,这样在后续执行任务时,可以将各项步骤与脚本中的函数相关联。
其中,对于目标脚本的获取方式,可以是获取到不同类型的脚本,例如,构建脚本、测试脚本,其中,该构建脚本可以是对某一个软件工程进行编译、打包的脚本,而测试脚本可以是在对工程进行打包后,对目标工程进行测试、接口调试、功能测试等操作的脚本,本发明实施例中并不会限定该目标脚本的类型。
可选的,上述的目标脚本可以作为一个插件,供所有的分布式执行机调用,在启动系统平台后,可以运行该目标脚本,从而在该目标脚本下执行各项任务。
需要说明的是,在获取目标任务时,可以获取目标任务的任务参数,,其中,任务参数至少包括下述之一:执行信息、触发方式、执行时间、通知方式、目标通知人信息,其中,执行信息对应于多个执行步骤。而对于通知方式,至少包括:弹窗通知、插件通知。另外,目标通知人信息可以包括但不限于:目标通知人的姓名信息和联系方式。执行时间可以指示记录执行目标任务的开始时间点、结束时间点、执行时长等时间信息。
对于上述的触发方式,其可以包括下述至少之一:挂钩hook触发、手动触发、定时触发,其中,hook触发为根据携带有目标任务的标识ID的链接信息,触发执行目标任务,手动触发为接收用户对图形用户界面中控件的操作来触发执行目标任务,定时触发为设置目标时间间隔来定时触发执行目标任务。其中,hook触发可以为web hook触发,其可以提供一个带上该任务id的url链接,访问这个链接就可以触发目标任务的执行。而手动触发可以是指在设备上点击对应的执行按钮,就可以触发目标任务的执行。
需要说明的是,执行机使用目标任务的任务参数,执行对应功能或者步骤,在任务执行成功或者失败后,可以根据配置参数向对应的联系人发送通知。执行过程中,如果用户需要停止该任务的执行,在平台上点击取消即可,取消之后任务将会中断。
另一种可选的实施方式,在获取目标任务时,还可以获取目标任务中每个执行步骤的执行顺序和运行方式,其中,运行方式至少包括下述之一:并行运行方式和串行运行方式。通过该种实施方式,可以得到每个执行步骤的运行方式和执行顺序,以保证步骤的有序执行,而不同的任务之间可以设置互斥与先后执行顺序,从而可以进一步保证每个任务的有序执行。
可选的,对于步骤与目标脚本的函数之间的关联关系,在本发明实施例并不做具体限定,其可以是先接收每个目标脚本中的配置参数和关键字参数,其中,配置参数为每个执行步骤的执行参数,关键字参数存储执行步骤所对应的执行结果;然后可以根据配置参数和关键字参数,每个执行步骤关联目标脚本或者目标脚本中的函数。其中,用户在配置目标任务时,可以配置每个执行步骤对应的脚本函数所需要的参数,然后可以提供一些关键字,关键字会对应步骤执行结果,从而使得在后续执行步骤时,根据这些关键字来判断步骤执行是否成功,即使得关键字作为参数,实现步骤的从参数传递。
步骤S104,将目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务。
其中,本发明中的多台分布式执行机可以是指多台执行任务的机器,对于机器的类型和型号不做具体限定,在同一系统平台下可以连接多台分布式执行机,这样在其中一台执行机得到目标脚本后,多台执行机都可以使用该脚本。而在执行目标任务时,可以是一个目标任务对应一台执行机。另外,在执行目标任务时,可以从多台分布式执行机中选择一个执行机作为目标执行机,以通过该目标执行机执行所述目标任务,在选择目标执行机时,可以通过任务的类型和执行机的空闲状态来确定一个目标执行机。
可选的,在将目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务包括:根据任务参数,将目标任务分发至目标执行机中。即可以根据上述的目标任务的各项参数数据,确定出当前可执行目标任务的执行机,并将该目标任务发送至目标执行机中。
步骤S106,获取执行日志和执行结果。其中,该执行日志可以是记录了各个执行机在执行每个执行步骤或者每个任务时的执行数据,该执行数据可以包括但不限于:时间数据、调试数据等。
通过上述步骤,可以先获取到目标任务,并得到目标脚本,其中,目标任务可以被配置多个执行步骤,每个执行步骤可以与目标脚本或目标脚本中的函数相关联,然后可以将目标任务发送至多台分布式执行机中的目标执行机中,最后可以在执行机执行多个步骤后,获取执行日志和执行结果,其中,执行日志会相应记录在执行各个步骤时的相关数据,而执行结果可以是显示执行机在执行目标任务后得到的执行结果(如执行成功或者执行失败)。在该实施例中,任务执行过程中可以直接分多个步骤执行,并且执行步骤可以直接关联脚本中的函数,对脚本的支持可以达到函数级,这样可以实现步骤之间的快速执行,执行任务的效率会出现明显提高,进而解决在系统开发过程中,由于单任务严重耦合导致无法分步骤执行任务,使得任务的执行效率和重用效率较低的技术问题。
一种可选的实施方式,在获取执行日志和执行结果之后,还可以获取目标脚本的脚本插件;并根据脚本插件,通过预设输出方式输出执行日志和/或执行结果,其中,预设输出方式至少包括:图形化输出方式和表格化输出方式,其中,若预设输出方式为图形化输出方式时,通过至少一个图形用户界面UI组件来展示执行日志和/或执行结果。
即本发明中,可以对目标脚本以插件的形式进行管理,对脚本的支持可以到函数级。并且对于脚本的输出,设备可以提供丰富的图形化输出或者表格化输出。其中,在输出时,可以按照固定的格式来输出执行结果,并配置对应的插件编号,可以自动将脚本的执行结果通过图形化或者表格化来输出并显示出来。
本发明实施例中,通过数据图形化展示的方式,使得执行结果的显示更加形象化和具体化,提高用户的使用系统的体验感。
可选的,上述的执行方法还包括:判断目标执行机是否为管理机;若目标执行机为管理机,检测是否存在上传的新目标脚本;若检测到存在上传的新目标脚本,将新目标脚本推送至多台分布式执行机的每个分布式执行机中;若目标执行机不是管理机,在预定间隔时长后从管理机中提取新上传的目标脚本。
本发明实施例中的管理机,可以对各个任务进行管理,包括任务的分发、控制执行任务等,具有执行机的所有功能,该管理机还可以调度用户入口和各个执行机。本发明实施例中对于各个任务的执行机不做限定,如有的任务可以指定同一个执行机来执行该任务,而其它的任务可以任意分配一个执行来执行,这些任务对执行机的型号和类型不做限定。通过该管理机可以管理任务的执行顺序和任务的执行效率,以提高任务的执行效率,提高用户使用该系统的体验感。
可选的,下面对分布式装置中脚本分发进行详细说明。图2是根据本发明实施例的一种可选的分布式装置分发脚本的方法示意图,如图2所示,该方法包括如下步骤:
步骤201,下载安装包到需要部署服务的目标执行机。其中,该执行机可以实现执行目标任务或者目标计划。
步骤202,在目标执行机上解压安装包。其中,安装包可以是包括了待运行的脚本。
步骤203,运行启动脚本。
步骤204,判断目标执行机是否是管理机。
若是,执行步骤S207,若否,执行步骤S205。
步骤S205,检测是否有新上传的脚本。若有,可以执行步骤S206,若无,可以再次回到步骤S205。
步骤206,从管理机中提取新脚本。
步骤S207,接收目标脚本。
步骤S208,判断是否有上传的新脚本。
若是,执行步骤S209,若否,再次回到步骤S207。
步骤S209,推送新脚本到目标执行机中。
步骤S210,若有目标任务需要执行,则执行对应的目标任务。
上述的多个执行步骤可以对应于上述的多个执行步骤。
通过上述实施方式,脚本的分发提供了两种方式,第一种是执行机主动从管理机拉取脚本,第二种是管理机主动推送脚本到执行机,从而可以实现对脚本的有效分发,从而可以实现将脚本推送到目标执行机中,然后,可以在该目标执行机实现对目标任务的执行,具体执行方式在上述的内容已经说明。
实施例二
下面将对分布式装置进行说明。
图3是根据本发明实施例的一种分布式装置的任务执行系统的示意图,如图3所示,该包括:脚本管理器31,用于获取目标脚本;计划管理器32,用于获取目标任务,并接收为目标任务配置的多个执行步骤,其中,每个执行步骤关联目标脚本或者目标脚本中的函数;计划调度器33,用于获取任务参数,并根据任务参数分发目标任务至多台分布式执行机的目标执行机中;存储器34,用于存储执行日志和执行结果,其中,执行日志包括目标执行机在执行多个执行步骤后时记录的目标数据和执行时间数据。
上述的任务执行系统,可以通过计划管理器32先获取到目标任务,并通过脚本管理器31得到目标脚本,其中,目标任务可以被配置多个执行步骤,每个执行步骤可以与目标脚本或目标脚本中的函数相关联,然后可以通过计划调度器33获取任务参数,并根据任务参数分发目标任务至多台分布式执行机的目标执行机中,并通过存储器34存储执行日志和执行结果,其中,执行日志包括目标执行机在执行多个执行步骤后时记录的目标数据和执行时间数据。在该实施例中,任务执行过程中可以直接分多个步骤执行,并且执行步骤可以直接关联脚本中的函数,对脚本的支持可以达到函数级,这样可以实现步骤之间的快速执行,执行任务的效率会出现明显提高,进而解决在系统开发过程中,由于单任务严重耦合导致无法分步骤执行任务,使得任务的执行效率和重用效率较低的技术问题。
其中,计划管理器32可以包括:分类管理器,设置目标任务的类型;计划数据管理器,用于为目标任务设置任务参数,其中,任务参数至少包括下述之一:执行信息、触发方式、执行时间、通知方式、目标通知人信息,其中,执行信息对应于多个执行步骤,通知方式至少包括:弹窗通知、插件通知,目标通知人信息包括目标通知人的姓名信息和联系方式,触发方式包括下述至少之一:挂钩hook触发、手动触发、定时触发,其中,挂钩hook触发为根据携带有目标任务的标识ID的链接信息,触发执行目标任务,手动触发为接收用户对图形用户界面中控件的操作来触发执行目标任务,定时触发为设置目标时间间隔来定时触发执行目标任务。
可选的,计划调度器包括:计划展示模块,用于通过预设展示方式展示用户配置的目标任务,其中,预设展示方式至少包括web页面或者图形UI;计划分发模块,用于获取任务参数,并根据任务参数分发目标任务至多台分布式执行机的目标执行机中;计划执行模块,用于控制目标执行机执行目标任务,得到执行结果。
另外,上述的任务执行系统还包括:日志展示模块,用于通过调用目标脚本的脚本插件,并根据脚本插件,通过预设输出方式输出执行日志,其中,预设输出方式至少包括:图形化输出方式和/或表格化输出方式,其中,若预设输出方式为图形化输出方式时,通过至少一个图形用户界面UI组件来展示执行日志和/或执行结果;结果展示模块,用于通过调用目标脚本的脚本插件,并根据脚本插件,通过预设输出方式输出执行结果。
一种可选的实施方式,任务执行系统还包括:消息通知器,用于在多个预定执行阶段,通过调用对应的通知插件发送通知消息,其中,多个预定执行阶段至少包括:目标任务开始执行时间段、目标任务结束执行时间段、目标任务取消执行时间段。
实施例三
下面以另一个更详细的任务执行系统来进行说明,图4是根据本发明实施例一种可选的任务执行系统的示意图,如图4所示,该任务执行系统可以包括:脚本管理器101,计划管理器105,计划调度器108,存储器112,结果展示器115,消息通知器118。
其中,脚本管理器101包括3个部分:用户开发包102,脚本编辑器103,脚本104;102为用户提供上传,下载与公共模块等基础功能,用户可以脚本编辑器103来编辑脚本,将自己的脚本上传到101脚本管理器。104上传到系统平台后,其他用户可以将他们作为一个插件直接使用。
而计划管理器105,用户在计划管理器添加一个构建或者测试计划106,然后为测试计划添加测试步骤,测试步骤关联101脚本管理中的脚本104。用户在添加计划(对应于上述的目标任务)的同时,还可以设置计划所属的分类,实现计划的分类管理,还可以设置计划的执行方式,执行时间,通知方式,通知人等多种信息。
可选的,计划调度器108,可以包括:计划展示109,计划分发110,计划执行111三个部分。109可以通过web页面,UI等多种方式展示用户配置的执行计划,然后读取计划配置的执行信息,将需要执行的计划通过110分发给对应的执行机,对应的执行机使用111执行对应的计划。
存储器112,包括日志存储113和结果存储114这两个部分,负责存储计划执行111中产生的执行日志和结果。
结果展示器115,包括日志展示116和结果展示117这两个部分,当用户查看计划执行的结果和日志时,结果展示模块从112中取出对应的存储结果,然后调用101中的脚本插件,将结果或者日志图形化展示给用户。
消息通知器118,在计划执行开始、结束或取消时,消息通知器根据计划的配置,调用101相关通知插件,发送对应的通知消息。
通过该任务执行系统,可以实现从脚本的开发到任务的执行,以及执行结果的记录,从而实现在软件开发过程中脚本和任务的构建和运行,提高了脚本运行效率,也提高了用户的体验感。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种目标任务的执行方法,其特征在于,包括:
获取目标任务,其中,所述目标任务中配置有多个执行步骤,每个所述执行步骤与目标脚本关联,或者与所述目标脚本中的函数相关联;
将所述目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务;
获取执行日志和执行结果。
2.根据权利要求1所述的执行方法,其特征在于,获取目标任务包括:
获取所述目标任务的任务参数,其中,任务参数至少包括下述之一:执行信息、触发方式、执行时间、通知方式、目标通知人信息,其中,所述执行信息对应于所述多个执行步骤。
3.根据权利要求2所述的执行方法,其特征在于,所述通知方式至少包括:弹窗通知、插件通知。
4.根据权利要求2所述的执行方法,其特征在于,所述触发方式包括下述至少之一:挂钩hook触发、手动触发、定时触发,其中,所述hook触发为根据携带有所述目标任务的标识ID的链接信息,触发执行所述目标任务,所述手动触发为接收用户对图形用户界面中控件的操作来触发执行所述目标任务,所述定时触发为设置目标时间间隔来定时触发执行所述目标任务。
5.根据权利要求2所述的执行方法,其特征在于,将所述目标任务发送至多台分布式执行机的目标执行机以执行所述目标任务包括:根据所述任务参数,将所述目标任务分发至所述目标执行机中。
6.根据权利要求1所述的执行方法,其特征在于,所述执行方法还包括:根据用户上传的文件包,确定所述目标脚本。
7.根据权利要求1所述的执行方法,其特征在于,获取目标任务包括:
获取所述目标任务中每个执行步骤的执行顺序和运行方式,其中,所述运行方式至少包括下述之一:并行运行方式和串行运行方式;
接收每个目标脚本中的配置参数和关键字参数,其中,所述配置参数为每个执行步骤的执行参数,所述关键字参数存储执行步骤所对应的执行结果;
根据所述配置参数和所述关键字参数,每个所述执行步骤关联所述目标脚本或者所述目标脚本中的函数。
8.根据权利要求1所述的执行方法,其特征在于,还包括:
判断所述目标执行机是否为管理机;
若所述目标执行机为管理机,检测是否存在上传的新目标脚本,若检测到存在上传的新目标脚本,将所述新目标脚本推送至所述多台分布式执行机的每个分布式执行机中;
若所述目标执行机不是管理机,在预定间隔时长后从所述管理机中提取新上传的目标脚本。
9.根据权利要求1所述的执行方法,其特征在于,在获取执行日志和执行结果之后,还包括:
获取所述目标脚本的脚本插件;
根据所述脚本插件,通过预设输出方式输出所述执行日志和/或所述执行结果,其中,所述预设输出方式至少包括:图形化输出方式和表格化输出方式,其中,若所述预设输出方式为所述图形化输出方式时,通过至少一个图形用户界面UI组件来展示所述执行日志和/或所述执行结果。
10.一种分布式装置的任务执行系统,其特征在于,包括:
脚本管理器,用于获取目标脚本;
计划管理器,用于获取目标任务,并接收为所述目标任务配置的多个执行步骤,其中,每个所述执行步骤关联所述目标脚本或者所述目标脚本中的函数;
计划调度器,用于获取任务参数,并根据所述任务参数分发所述目标任务至多台分布式执行机的目标执行机中;
存储器,用于存储执行日志和执行结果,其中,所述执行日志包括所述目标执行机在执行多个执行步骤后时记录的目标数据和执行时间数据。
11.根据权利要求10所述的任务执行系统,其特征在于,所述计划管理器包括:
分类管理器,设置目标任务的类型;
计划数据管理器,用于为所述目标任务设置任务参数,
其中,所述任务参数至少包括下述之一:执行信息、触发方式、执行时间、通知方式、目标通知人信息,其中,所述执行信息对应于所述多个执行步骤,所述通知方式至少包括:弹窗通知、插件通知,所述目标通知人信息包括目标通知人的姓名信息和联系方式,所述触发方式包括下述至少之一:挂钩hook触发、手动触发、定时触发,其中,所述挂钩hook触发为提供携带有所述目标任务的标识ID的链接信息,触发执行所述目标任务,所述手动触发为接收用户对图形用户界面中控件的操作来触发执行所述目标任务,所述定时触发为设置目标时间间隔来定时触发执行所述目标任务。
12.根据权利要求10所述的任务执行系统,其特征在于,所述计划调度器包括:
计划展示模块,用于通过预设展示方式展示用户配置的目标任务,其中,预设展示方式至少包括web页面或者图形UI;
计划分发模块,用于获取任务参数,并根据所述任务参数分发所述目标任务至多台分布式执行机的目标执行机中;
计划执行模块,用于控制所述目标执行机执行所述目标任务,得到执行结果。
13.根据权利要求10所述的任务执行系统,其特征在于,还包括:
日志展示模块,用于通过调用所述目标脚本的脚本插件,并根据所述脚本插件,通过预设输出方式输出所述执行日志,其中,所述预设输出方式至少包括:图形化输出方式和/或表格化输出方式,其中,若所述预设输出方式为所述图形化输出方式时,通过至少一个图形用户界面UI组件来展示所述执行日志和/或所述执行结果;
结果展示模块,用于通过调用所述目标脚本的脚本插件,并根据所述脚本插件,通过预设输出方式输出所述执行结果。
14.根据权利要求10所述的任务执行系统,其特征在于,还包括:
消息通知器,用于在多个预定执行阶段,通过调用对应的通知插件发送通知消息,其中,所述多个预定执行阶段至少包括:目标任务开始执行时间段、目标任务结束执行时间段、目标任务取消执行时间段。
CN201810499957.3A 2018-05-23 2018-05-23 目标任务的执行方法及系统 Pending CN108776604A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810499957.3A CN108776604A (zh) 2018-05-23 2018-05-23 目标任务的执行方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810499957.3A CN108776604A (zh) 2018-05-23 2018-05-23 目标任务的执行方法及系统

Publications (1)

Publication Number Publication Date
CN108776604A true CN108776604A (zh) 2018-11-09

Family

ID=64027496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810499957.3A Pending CN108776604A (zh) 2018-05-23 2018-05-23 目标任务的执行方法及系统

Country Status (1)

Country Link
CN (1) CN108776604A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338656A (zh) * 2020-02-25 2020-06-26 平安科技(深圳)有限公司 安装软件包至目标主机的方法、装置和计算机设备
CN111930456A (zh) * 2020-08-06 2020-11-13 Oppo广东移动通信有限公司 一种测试日志的显示方法及电子设备、存储介质
CN113032049A (zh) * 2021-04-13 2021-06-25 北京华胜天成科技股份有限公司 基于任务启动策略的应用系统部署方法及装置和电子设备
CN113542796A (zh) * 2020-04-22 2021-10-22 腾讯科技(深圳)有限公司 视频评测方法、装置、计算机设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252471A (zh) * 2008-03-20 2008-08-27 中兴通讯股份有限公司 一种分布式自动化测试系统及其方法
CN101667230A (zh) * 2008-09-02 2010-03-10 北京瑞星国际软件有限公司 一种监控脚本执行的方法和装置
US20110153985A1 (en) * 2009-12-23 2011-06-23 Ashoke Saha Systems and methods for queue level ssl card mapping to multi-core packet engine
CN102156673A (zh) * 2011-04-20 2011-08-17 北京航空航天大学 面向测试用例描述的gui自动化测试系统及其测试方法
CN103377075A (zh) * 2012-04-28 2013-10-30 腾讯科技(深圳)有限公司 管理任务的方法、装置及系统
CN105493033A (zh) * 2013-06-02 2016-04-13 微软技术许可有限责任公司 声明性配置元素
CN106155786A (zh) * 2016-06-23 2016-11-23 浪潮(北京)电子信息产业有限公司 一种云平台任务管理方法及系统
CN106569783A (zh) * 2015-10-08 2017-04-19 腾讯科技(深圳)有限公司 一种执行任务脚本的方法和装置
CN107608897A (zh) * 2017-09-26 2018-01-19 郑州云海信息技术有限公司 一种分布式集群的测试方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252471A (zh) * 2008-03-20 2008-08-27 中兴通讯股份有限公司 一种分布式自动化测试系统及其方法
CN101667230A (zh) * 2008-09-02 2010-03-10 北京瑞星国际软件有限公司 一种监控脚本执行的方法和装置
US20110153985A1 (en) * 2009-12-23 2011-06-23 Ashoke Saha Systems and methods for queue level ssl card mapping to multi-core packet engine
CN102156673A (zh) * 2011-04-20 2011-08-17 北京航空航天大学 面向测试用例描述的gui自动化测试系统及其测试方法
CN103377075A (zh) * 2012-04-28 2013-10-30 腾讯科技(深圳)有限公司 管理任务的方法、装置及系统
CN105493033A (zh) * 2013-06-02 2016-04-13 微软技术许可有限责任公司 声明性配置元素
CN106569783A (zh) * 2015-10-08 2017-04-19 腾讯科技(深圳)有限公司 一种执行任务脚本的方法和装置
CN106155786A (zh) * 2016-06-23 2016-11-23 浪潮(北京)电子信息产业有限公司 一种云平台任务管理方法及系统
CN107608897A (zh) * 2017-09-26 2018-01-19 郑州云海信息技术有限公司 一种分布式集群的测试方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338656A (zh) * 2020-02-25 2020-06-26 平安科技(深圳)有限公司 安装软件包至目标主机的方法、装置和计算机设备
CN111338656B (zh) * 2020-02-25 2023-12-15 平安科技(深圳)有限公司 安装软件包至目标主机的方法、装置和计算机设备
CN113542796A (zh) * 2020-04-22 2021-10-22 腾讯科技(深圳)有限公司 视频评测方法、装置、计算机设备和存储介质
CN113542796B (zh) * 2020-04-22 2023-08-08 腾讯科技(深圳)有限公司 视频评测方法、装置、计算机设备和存储介质
CN111930456A (zh) * 2020-08-06 2020-11-13 Oppo广东移动通信有限公司 一种测试日志的显示方法及电子设备、存储介质
CN113032049A (zh) * 2021-04-13 2021-06-25 北京华胜天成科技股份有限公司 基于任务启动策略的应用系统部署方法及装置和电子设备
CN113032049B (zh) * 2021-04-13 2024-06-11 北京华胜天成科技股份有限公司 基于任务启动策略的应用系统部署方法及装置和电子设备

Similar Documents

Publication Publication Date Title
CN108776604A (zh) 目标任务的执行方法及系统
CN105095062B (zh) 应用程序测试方法及系统
CN106484622A (zh) 测试方法、装置及系统
CN109218139A (zh) 网关测试系统
CN108399132A (zh) 一种调度测试方法、装置及存储介质
CN108197032A (zh) Ios应用的主线程卡顿监测方法、介质、设备及系统
CN108369528A (zh) 用于生产力应用的唤回服务
CN106201472A (zh) 软件开发的任务调度方法及装置
CN108228321A (zh) 一种安卓系统应用关闭方法和装置
CN106569920A (zh) 数据库备份方法及装置
CN108376115A (zh) 一种跨Android平台自动化测试方法及系统
CN102130995B (zh) Android系统中智能电话信息的数据传输方法
CN107463457A (zh) 一种应用程序反馈信息的采集上报方法及装置
CN109683859A (zh) 一种计算机软件开发管理平台,设备及可读存储介质
CN107122291A (zh) 移动终端软件稳定性测试方法和设备
CN108520043A (zh) 数据对象采集方法、装置及系统、计算机可读存储介质
CN108376110A (zh) 一种自动检测方法、系统及终端设备
CN107526636A (zh) 资源识别方法及装置
CN105843675B (zh) 线程退出方法和装置
CN110113391A (zh) 一种客户端上线方法、装置及一种客户端运行方法、装置
CN106775620A (zh) 一种定时方法及装置
CN109087006A (zh) 电力设备监造信息的处理方法及装置
CN108009096A (zh) 一种测试方法及终端
CN108196993A (zh) Usb接口测试方法、终端及计算机可读存储介质
CN111444109A (zh) 一种移动端ui自动化测试方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20181109

RJ01 Rejection of invention patent application after publication