CN112579101A - 任务脚本管控方法、装置、电子设备和存储介质 - Google Patents
任务脚本管控方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112579101A CN112579101A CN202011533062.0A CN202011533062A CN112579101A CN 112579101 A CN112579101 A CN 112579101A CN 202011533062 A CN202011533062 A CN 202011533062A CN 112579101 A CN112579101 A CN 112579101A
- Authority
- CN
- China
- Prior art keywords
- task
- script
- execution
- target
- information
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种任务脚本管控方法、装置、电子设备和存储介质,所述方法包括:提供已部署的任务脚本的文件组织结构视图所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;在接收到针对所述文件组织结构视图提交的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。本发明实施例实现任务脚本的统一管控。
Description
技术领域
本发明实施例涉及数据处理技术领域,特别是涉及一种任务脚本管控方法、一种任务脚本管控装置、电子设备和存储介质。
背景技术
任务脚本是不需要编译、在运行时通过解释执行的程序,是批处理文件的延伸,可以采用纯文本方式保存。在互联网软件开发中,任务脚本的应用非常广泛,有很多需要任务脚本执行的任务,例如临时导出部分数据、发放额外奖励、定时添加提醒、清理收尾数据、调整业务配置数据、临时修改业务流程数据等,所以任务脚本是互联网业务开发中不可或缺的一种开发辅助工具。
然而,任务脚本作为一个高效实用的开发辅助工具,给业务系统开发带来了很大的便利性,但是由于任务脚本在互联网开发业务中使用过于随意,缺乏统一管控。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种任务脚本管控方法和相应的一种任务脚本管控装置、电子设备、存储介质。
为了解决上述问题,本发明实施例公开了一种任务脚本管控方法,所述方法包括:
提供已部署的任务脚本的文件组织结构视图,所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
在接收到针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
可选地,在所述提供已部署的任务脚本的文件组织结构视图之前,所述方法还包括:
获取任务脚本以及所述任务脚本的文件组织信息;所述文件组织信息包括所述任务脚本所在的目录层级;其中,所述目录层级为基于所述任务脚本的功能进行划分;
根据所述文件组织信息部署所述任务脚本。
可选地,所述在接收到针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本,包括:
在接收针对所述文件组织结构视图提交的任务信息时,将所述任务信息保存至分布式数据库中;所述任务信息包括任务标识;
确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述任务信息,并根据所述任务标识执行对应的目标任务脚本。
可选地,所述确定目标代理执行服务器,包括:
根据所述任务标识从注册中心查询到目标代理执行服务器;
或者,根据所述任务信息中的IP地址确定目标代理执行服务器。
可选地,所述任务信息包括用户标识;所述将所述任务信息保存至分布式数据库中,还包括:
当所述用户标识具有处理任务信息的权限时,将所述任务信息保存至分布式数据库中;
当所述用户标识不具有处理任务信息的权限时,触发告警信息。
可选地,在所述同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据之后,所述方法还包括:
将所述任务执行数据实时保存至所述目标任务脚本的日志记录中。
可选地,所述根据所述文件组织信息部署所述任务脚本,包括:
获取所述任务脚本的相关信息;所述相关信息至少包括脚本内容、修改日期、文件大小和MD5值;
根据所述脚本内容、所述修改日期和所述文件大小生成验证MD5值;
当所述验证MD5值与所述MD5值相同时,根据所述文件组织信息部署所述任务脚本。
可选地,所述提供已部署的任务脚本的文件组织结构视图,包括:
接收基于所述文件组织结构视图触发的任务脚本的结构查询请求;所述请求中包括用户标识;
当所述用户标识具有查询的权限时,根据所述任务脚本所在的目录层级生成文件组织结构视图;
向所述用户终端提供所述文件组织结构视图,以在所述用户终端展示所述文件组织结构视图。
可选地,所述向所述用户终端提供所述文件组织结构视图,以在所述用户终端展示所述文件组织结构视图之后,所述方法还包括:
当接收到基于所述文件组织结构视图触发的任务脚本的内容查询请求时,获取所述任务脚本的文件内容;
向所述用户终端提供所述文件内容,以在所述用户终端展示所述任务脚本的文件内容。
可选地,在所述同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据之后,所述方法还包括:
在接收针对所述分布式数据库中的任务信息的修改请求时,修改所述分布式数据库中对应的任务信息;
确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述修改后的任务信息,并根据所述修改后的任务信息中的任务标识执行对应的目标任务脚本。
可选地,在所述同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据之后,所述方法还包括:
在接收针对所述分布式数据库中的任务信息的删除请求时,删除所述分布式数据库中对应的任务信息;
确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述删除后的任务信息,以不再执行所述删除后的任务信息中的任务标识对应的目标任务脚本。
本发明实施例还公开了一种任务脚本管控方法,所述方法包括:
获取符合指定执行条件的任务信息;所述任务信息为与文件组织结构视图中的目录层级对应的任务信息,所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
根据所述任务信息确定目标任务脚本;
执行所述目标任务脚本,并将执行所述目标任务脚本的任务执行数据同步至所述管理后台服务器中,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
可选地,所述将执行所述目标任务脚本的任务执行数据同步至所述管理后台服务器中,包括:
将执行所述目标任务脚本的任务执行数据同步至分布式数据库中,以使所述管理后台服务器从所述分布式数据库同步获取所述目标任务脚本的任务执行数据。
本发明实施例还公开了一种任务脚本管控方法,所述方法包括:
展示文件组织结构视图;所述文件组织结构视图为基于部署在管理后台服务器的任务脚本文件所在的目录层级生成的脚本结构视图;所述目录层级用于确定所述任务脚本之间的层级关系;
根据所述文件组织结构视图向所述管理后台服务器提交任务信息;所述管理后台服务器用于将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
同步获取所述目标任务脚本的任务执行数据,所述任务执行数据为所述管理后台服务器同步从所述目标代理执行服务器获取所得,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
本发明实施例还公开了一种任务脚本管控装置,所述装置包括:
提供模块,用于提供已部署的任务脚本的文件组织结构视图;所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
发布模块,用于在接收到针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
同步模块,用于同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
本发明实施例还公开了一种任务脚本管控装置,所述装置包括:
获取模块,用于获取符合指定执行条件的任务信息;所述任务信息为与文件组织结构视图中的目录层级对应的任务信息,所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
确定模块,用于根据所述任务信息确定目标任务脚本;
执行模块,用于执行所述目标任务脚本,并将执行所述目标任务脚本的任务执行数据同步至所述管理后台服务器中,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
本发明实施例还公开了一种任务脚本管控装置,所述装置包括:
展示模块,用于展示文件组织结构视图;所述文件组织结构视图为基于部署在管理后台服务器的任务脚本文件所在的目录层级生成的脚本结构视图;所述目录层级用于确定所述任务脚本之间的层级关系;
提交模块,用于根据所述文件组织结构视图向所述管理后台服务器提交任务信息;所述管理后台服务器用于将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
获取模块,用于同步获取所述目标任务脚本的任务执行数据,所述任务执行数据为所述管理后台服务器同步从所述目标代理执行服务器获取所得,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的任务脚本管控方法的步骤。
本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的任务脚本管控方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,提供已部署的任务脚本的文件组织结构视图,在接收到针对文件组织结构提交的任务信息时,将任务信息发布至目标代理执行服务器,以使目标代理执行服务器根据任务信息执行对应的目标任务脚本,其中,在目标代理执行服务器根据任务信息执行对应的目标任务脚本时,同步获取目标代理执行服务器执行目标任务脚本的任务执行数据,从而获取到包括目标任务脚本执行中的执行状态数据和目标任务脚本执行后的执行结果数据的任务执行数据。其中,文件组织结构视图为基于任务脚本所在的目录层级生成的脚本结构视图,目录层级可以用于确定任务脚本之间的层级关系,本发明实施例通过文件组织结构视图对于任务脚本进行统一管控,提高任务脚本的制定和执行效率。
附图说明
图1是本发明的一种任务脚本管控方法实施例的步骤流程图;
图2是本发明的另一种任务脚本管控方法实施例的步骤流程图;
图3是本发明的又一种任务脚本管控方法实施例的步骤流程图;
图4是本发明的一种任务脚本管理调度系统的架构示意图;
图5是本发明的一种定时任务脚本的处理架构示意图;
图6是本发明的一种任务脚本管控装置实施例的结构框图;
图7是本发明的另一种任务脚本管控装置实施例的结构框图;
图8是本发明的又一种任务脚本管控装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
任务脚本作为一个高效实用的工具,给业务系统开发带来了很大的便利性,但是任务脚本也存在相当多的问题。例如,任务脚本常常缺乏统一管理,存在误删和遗忘等问题;缺少版本和内容管理,出现配置出错,使用旧数据等问题;任务脚本游离于业务系统外,在代码审查时容易被遗忘,引起不必要的麻烦;在Linux系统中使用crontab(用来定期执行程序的命令)来设置定时任务脚本时缺乏错误提醒和日志,执行结果是未知的。这些问题是由于任务脚本使用太过随意,缺乏统一管理导致的。
针对上述问题,在相关的解决方案中,可以通过运维自动化工具实现。例如通过Ansible等运维自动化工具,在一定程度上能够达到任务脚本的自动化部署和执行的目的。运维自动化工具能够对多台主机进行管理,对于任务脚本的分发和执行有现成的解决方案,用户可以通过这类工具方便地部署和管理,对机器、系统扩展有良好的支持。
除了运维自动化工具之外,还可以通过工作流调度系统解决上述问题。与运维自动化工具相比,Azkaban和Airflow等主流的工作流调度系统对于任务脚本的管理来说提供了更多的支持。一个工作流调度系统通常包含:任务编排和调度的机制、任务监控和日志系统、可视化的用户管理界面、认证授权模块以及分布式部署支持等。与任务脚本散乱部署,crontab设置定时任务相比,工作流调度系统提供了一种更加完善和高效的脚本部署和工作模式。使用工作流调度系统,可以更简便地执行任务脚本;更高效地完成任务脚本的执行结果的确认和查询;拥有更有效的监控和告警方式;能够更方便地进行系统扩展。
上述的方案都有其各自的优点,能够满足任务脚本管理的部分需求,但是存在一些不足之处,具体地:
在任务脚本管理的整个流程当中,运维自动化工具所能提供的支持有限。在任务脚本的管理和执行方面,运维自动化工具在任务执行过程中的监控告警、日志提示、权限管理和安全性检查等功能依然没有完善的解决方案。总体而言,运维自动化工具更适合作为整个任务脚本管理系统的组件出现,发挥其在自动化分发部署中的优势。
工作流调度系统能够提供的功能更多,但是整个系统的关注点和目标与任务脚本的管理并不一致。任务脚本管理系统是为了实现任务脚本的统一管理,并管控任务执行的流程而存在的。任务脚本的管理是以所有的任务脚本为核心,围绕用户的任务脚本以及其生命周期的各项功能制定的文件系统和执行流程的管理系统,而任务流的调度系统的关注点在于让用户构建任务流,并围绕已建立的任务流的生命周期管理。对于任务脚本而言,一个重要的管理需求就是将零散的,不经常使用的任务脚本统一收集并管理起来,建立一个完善的文件管理系统,而任务流调度系统的设计目的与此并不相符。
综上可知,相关的解决方案虽然能一定程度上满足任务脚本管理的需要,但是仍然无法同时支持两个核心的需求:1.任务脚本的统一管理;2.任务脚本调度的管理和监控。
针对两个任务脚本管理的核心需求,本发明实施例整理出以下任务脚本管理系统需要支持的细分特性,并实施可行的解决方案。1.信息化集中管理,把散乱的脚本收纳起来,以文件系统的形式组织和管理任务脚本;2.实现全自动化的脚本集成和部署,简化使用操作;3.支持多语言的任务脚本,提高系统的适用范围;4.实现可扩展、数据持久化和冗余功能,提供高并发和容灾能力;5.支持任务脚本的直接执行以及定时执行方式;6.实现完善的日志功能,便于确认脚本执行的结果;7.支持脚本执行失败后的告警功能,提供可扩展的告警方式;8.进行安全性检测,执行权限、代码风险性检查、危险行为检查等。
基于上述需要支持的细分特性,本发明实施例提出了一种任务脚本管理调度方法,1.通过该系统能够把散乱的任务脚本收纳起来,全自助管理,无需运维人员进行介入;2.支持后台直接执行和定时执行两种方式;3.支持任务脚本执行结果确认和查询;4.能够有完善的告警监控,出错,超时等同时支持多种类告警方式;5.与系统命令crontab的时间格式一致,更符合用户使用习惯,降低使用成本;6.能够进行安全性检测,执行权限、代码风险性检查、危险行为检查等,进一步保证任务脚本执行的安全性。本发明实施例整套系统尽量在保证任务脚本便利性的特性下,加入管理和和适当的流程控制,使得任务脚本的执行更高效。
下面对于本发明实施例进行详细介绍。
参照图1,示出了本发明的一种任务脚本管控方法实施例的步骤流程图,本发明实施例具体可以包括如下步骤:
步骤101,提供已部署的任务脚本的文件组织结构视图,所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系。
具体地,本发明实施例的任务脚本管控方法,应用于任务脚本管理调度系统,该系统中包括管理后台服务器和代理执行服务器,其中,管理后台服务器,用于处理针对任务脚本提交的请求以及任务脚本的文件组织结构视图的提供,代理执行服务器,作为执行任务脚本的指定的目标机器。其中,本发明实施例任务脚本管理调度系统的可以支持多语言的任务脚本,例如Java,go,Python,C/C++,PHP等等,系统的适用范围非常广。
具体地,在管理后台服务器上按照设定的文件组织结构预先部署好一个项目中所有的任务脚本,使得任务脚本可以在管理后台服务器中按照基于功能(业务)划分的目录层级在指定的存储路径中存储,形成任务脚本的文件系统。执行代理服务器中部署有用于执行任务脚本的代理程序,其中,执行代理服务器中可以仅部署其针对性执行的任务脚本,也可以同样按照设定的文件组织结构预先部署好一个项目中所有的任务脚本,本发明实施例对此无需加以限制。
其中,文件组织结构视图至少包括了任务脚本所在项目,所在文件系统的目录层级等内容,基于目录层级可以确定任务脚本之间的层级关系。本发明实施例中,在部署好任务脚本后可以将文件组织结构视图提供至用户终端,从而在用户终端上可以以视图方式为用户展示任务脚本的文件组织结构,使得用户能够直观看到已部署的任务脚本的文件组织结构,任务脚本所在的目录层级以及任务脚本所能实现的功能等等。
步骤102,在接收到针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本。
其中,任务信息中可以包括所需要执行的任务脚本的相关信息,例如任务脚本的任务标识,任务标识可以是名称或者编号,任务标识与任务脚本相对应,任务信息中还可以包括执行任务脚本的目标代理执行服务器的IP地址等等。
具体地,在用户终端上为用户展示文件组织结构视图后,用户可以对文件组织结构视图进行操作以确定需要执行的任务脚本,从而可以根据该任务脚本触发生成任务信息并发送至管理后台服务器,管理后台服务器再将任务信息发布至目标代理执行服务器,使得目标代理执行服务器根据任务信息确定对应的目标任务脚本并执行。
步骤103,同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
其中,任务执行数据为能够反映目标任务脚本在目标代理执行服务器执行中和执行后的数据,具体包括有目标任务脚本执行中的执行状态数据,以及目标任务脚本执行后的执行结果数据。
具体地,在目标代理执行服务器执行目标任务脚本的开始执行时,管理后台服务器可以主动与目标代理执行服务器建立Websocket连接,从而可以实时获取执行目标任务脚本的任务执行数据,然后将该任务执行数据同步至管理后台服务器,从而管理后台服务器能够将目标任务脚本的执行情况同步至用户终端,使得用户可以实时获取到目标任务脚本的执行中和执行后的执行情况。
在上述的任务脚本管控方法中,提供已部署的任务脚本的文件组织结构视图,在接收到针对文件组织结构提交的任务信息时,将任务信息发布至目标代理执行服务器,以使目标代理执行服务器根据任务信息执行对应的目标任务脚本,其中,在目标代理执行服务器根据任务信息执行对应的目标任务脚本时,同步获取目标代理执行服务器执行目标任务脚本的任务执行数据,从而获取到包括目标任务脚本执行中的执行状态数据和目标任务脚本执行后的执行结果数据的任务执行数据。其中,文件组织结构视图为基于任务脚本所在的目录层级生成的脚本结构视图,目录层级可以用于确定任务脚本之间的层级关系,本发明实施例通过文件组织结构视图对于任务脚本进行统一管控,提高任务脚本的制定和执行效率。
在一示例性实施例中,在所述步骤101,提供已部署的任务脚本的文件组织结构视图之前,所述方法还包括:
获取任务脚本以及所述任务脚本的文件组织信息;所述文件组织信息包括所述任务脚本所在的目录层级;其中,所述目录层级为基于所述任务脚本的功能进行划分;
根据所述文件组织信息部署所述任务脚本。
其中,本发明实施例预先针对任务脚本设定对应的文件组织信息,该文件组织信息包括一个项目中所有的任务脚本在文件系统的目录层级。具体地,同一个项目中的任务脚本和对应的文件组织信息被统一打包分发至管理后台服务器和代理执行服务器,然后,在管理后台服务器和代理执行服务器中,将按照文件组织信息中对任务脚本进行部署。其中,目标层级是基于任务脚本所具有的功能划分,例如清除功能或者定时功能等等。
在上述实施例中,对项目中的任务脚本进行信息化集中管理,通过将散乱的任务脚本收纳起来,并以文件系统的形式组织和管理任务脚本,使得任务脚本易于管控。
在一示例性实施例中,所述步骤102,在接收到针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本,包括:
在接收针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息保存至分布式数据库中;所述任务信息包括任务标识;
确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述任务信息,并根据所述任务标识执行对应的目标任务脚本。
其中,在管理后台服务器和代理执行服务器之间,设置有分布式数据库,该分布式数据库为管理后台服务器和代理执行服务器之间的沟通渠道。
其中,代理执行服务器通常有多个,多个代理执行服务器组成了代理集群,在本发明实施例中基于分布式数据库实现了环境隔离,即隔离了管理后台服务器与代理执行服务器,同时也隔离了代理集群中的代理执行服务器,代理集群无需直接沟通交流,而是刻意通过分布式数据库操作进行沟通交流,降低代理集群环境部署的复杂度。
在具体实施时,通过文件组织结构视图,用户可以快速确定各个与目录层级对应的任务脚本所具有的功能,从而确定所需要执行任务脚本,进而基于所需要执行的任务脚本的任务标识生成任务信息,提交至管理后台服务器,并在分布式数据库中保存,此时,管理后台服务器还可以向目标代理执行服务器发送任务刷新请求,目标代理执行服务器则可以根据刷新请求,从分布式数据库中获取到任务信息,以基于任务信息中的任务标识确定目标任务脚本并执行。
需要说明的是,本发明实施例的任务信息所对应的任务脚本可以采用直接执行方式或者定时执行方式。其中,针对采用定时执行方式的任务脚本,例如按天或者按时的周期性执行的任务脚本,其对应的任务信息在分布式数据中保存新增后,向目标代理执行服务器发送刷新请求,然后目标代理执行服务器则基于刷新请求从分布式数据库中获取到任务信息,并基于该任务信息执行对应的目标任务脚本。或者,也可以是目标代理执行服务器按照预设时间间隔,定期到分布式数据库中获取任务信息,并基于该任务信息执行对应的目标任务脚本。而针对采用直接执行方式的任务脚本,可以直接将任务信息发布至目标代理执行服务器,目标代理执行服务器再基于该任务信息执行对应的目标任务脚本。
当然,上述的采用直接执行方式或者采用定时执行方式仅仅是作为示例,对于采用直接执行方式的任务脚本的任务信息,也可以保存到分布式数据中,并基于类似采用定时执行方式的任务脚本方式进行处理,本发明实施例对此无需加以限制。
在一示例性实施例中,所述确定目标代理执行服务器,包括:
根据所述任务标识从注册中心查询到目标代理执行服务器;
或者,根据所述任务信息中的IP地址确定目标代理执行服务器。
其中,在本发明实施例的任务脚本管理调度系统中,还可以包括注册中心,在注册中心中预先注册有代理执行服务器所代理执行的任务脚本,以及其IP地址等等,因此本发明实施例在获取到任务信息后,可以根据任务信息中的任务标识,从注册中心中确定目标代理执行服务器。当然,也可以根据任务信息中目标代理执行服务器的IP地址,来确定其目标代理执行服务器。
在一示例性实施例中,所述任务信息包括用户标识;所述将所述任务信息保存至分布式数据库中,还包括:
当所述用户标识具有处理任务信息的权限时,将所述任务信息保存至分布式数据库中;
当所述用户标识不具有处理任务信息的权限时,触发告警信息。
其中,用户标识可以是用户名称或者用户账户。在本发明实施例的任务脚本管理调度系统中,实现了统一的用户权限控制管理,并对不同用户(标识)定制了其在不同项目所具有的权限,例如是否具有提交任务信息的权限,是否具有修改任务信息的权限,是否具有删除任务信息的权限,是否具有查询文件组织结构视图的权限等等。
具体地,若检测到任务信息中的用户标识具有提交任务信息的权限,则在接收到任务信息后,将任务信息保存至分布式数据中,若检测到任务信息中的用户标识不具有处理任务信息的权限,则可以向用户标识对应的用户发出警告。
在一示例性实施例中,在所述103,同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据之后,所述方法还包括:
将所述任务执行数据实时保存至所述目标任务脚本的日志记录中。
在本发明实施例的任务脚本管理调度系统中,还可以具有日志功能。具体地,在目标代理执行服务器执行目标任务脚本的过程中,可以将执行中和执行后的任务执行数据同步分布式数据库作为日志记录保存中,然后管理后台服务器将可以将分布式数据库中的日志记录实时提供至用户终端。
具体地,用户终端发送向管理后台服务器发送指令,管理后台服务器则依据指令从分布式数据库中获取到日志记录,实现对任务脚本的进程异步监控,使得在用户终端可以实时获取日志记录并展示,全面掌握任务脚本运行的情况。当然,对于先记载的历史日志记录,用户也可以同样通过用户终端进行查看。
在一示例性实施例中,所述根据所述文件组织信息部署所述任务脚本,包括:
获取所述任务脚本的相关信息;所述相关信息至少包括脚本内容、修改日期、文件大小和MD5值;
根据所述脚本内容、所述修改日期和所述文件大小生成验证MD5值;
当所述验证MD5值与所述MD5值相同时,根据所述文件组织信息部署所述任务脚本。
其中,在部署任务脚本前,可以先对任务脚本进行验证,验证方式可以有多种,例如可以采用MD5(MD5 Message-Digest Algorithm,信息摘要算法第五版)进行验证。
具体地,可以获取任务脚本的相关信息,然后基于相关信息中的脚本内容、修改日期、文件大小生成验证MD5值,并在验证MD5值与相关信息中的MD5值相同时,确定为任务脚本通过验证,则可以部署该任务脚本。当然,在实际应用中可以使用除MD5之外的其他验证方式,本发明实施例对此无需加以限制。
在一示例性实施例中,所述步骤101,提供已部署的任务脚本的文件组织结构视图,具体包括:
接收基于所述文件组织结构视图触发的任务脚本的结构查询请求;所述请求中包括用户标识;
当所述用户标识具有查询的权限时,根据所述任务脚本所在的目录层级生成文件组织结构视图;
向所述用户终端提供所述文件组织结构视图,以在所述用户终端展示所述文件组织结构视图。
具体地,当用户想要查看任务脚本的文件组织结构视图时,在管理后台服务器可以接收到结构查询请求,该请求可以用于查询任务脚本的文件系统中所有页面的层级目录,也可以是指定页面的层级目录。其中,通过缓存或分布式数据库可以检查用户标识所具有的权限,当确定该结构查询请求中的用户标识具有查询的权限时,管理后台服务器将查询任务脚本的文件系统中目标路径下的文件夹及所有文件的信息,组织为文件组织结构视图后,返回至用户终端进行展示。
在一示例性实施例中,所述向所述用户终端提供所述文件组织结构视图,以在所述用户终端展示所述文件组织结构视图之后,所述方法还包括:
当接收到基于所述文件组织结构视图触发的任务脚本的内容查询请求时,获取所述任务脚本的文件内容;
向所述用户终端提供所述文件内容,以在所述用户终端展示所述任务脚本的文件内容。
在本发明实施例中,用户还可以查看任务脚本的具体内容,具体地,用户可以基于文件组织结构视图触发的任务脚本的内容查询请求,在管理后台服务器接收到内容查询请求后,将根据任务脚本所在的目录层级确定存储路径,基于该存储路径读取任务脚本的具体内容,并返回至用户终端进行展示。
在本发明实施例中,可以对分布式数据库中的任务信息进行修改或者删除,下面以分别对修改和删除任务信息的处理过程进行说明。
在一示例性实施例中,针对修改任务信息,所述方法还包括:
在接收针对所述分布式数据库中的任务信息的修改请求时,修改所述分布式数据库中对应的任务信息;
确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述修改后的任务信息,并根据所述修改后的任务信息中的任务标识执行对应的目标任务脚本。
具体地,若接收针对分布式数据库中的任务信息的修改请求,将修改相应的任务信息。以修改分布式数据库中的定时任务信息为例,在修改定时任务信息时,管理后台服务器对用户的登录状态及权限进行验证,如果登录状态已过期或者超出权限,会触发告警提示。
在通过验证后,基于修改请求对定时任务信息进行修改,然后将修改后的定时任务信息重新存入分布式数据库,并通过告警信息确认该定时任务信息对应的定时任务脚本的配置,有以下的任务脚本参数可供配置:目标机器的IP、目标机器的服务、脚本工作目录、脚本执行时间、预估执行时长以及脚本描述。
在修改后的定时任务信息重新存入分布式数据库后,发送刷新定时任务的请求到代理执行服务器,代理执行服务器收到请求后会重新获取所有的定时任务信息,然后保存在内存中,此外代理执行服务器也可以定时获取数据库中的定时脚本信息更新定时任务信息。
在一示例性实施例中,针对删除任务信息,所述方法还包括:
在接收针对所述分布式数据库中的任务信息的删除请求时,删除所述分布式数据库中对应的任务信息;
确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述删除后的任务信息,以不再执行所述删除后的任务信息中的任务标识对应的目标任务脚本。
具体地,若接收针对分布式数据库中的任务信息的删除请求,将删除相应的任务信息。以删除分布式数据库中的定时任务信息为例,在删除定时任务信息时,管理后台服务器对用户的登录状态及权限进行验证,如果登录状态已过期或者超出权限,会触发告警提示。
在通过验证后,基于删除请求删除分布式数据中相应的定时任务信息进行删除,然后通过告警信息确认该定时任务信息对应的定时任务脚本的配置,有以下的任务脚本参数可供配置:目标机器的IP、目标机器的服务、脚本工作目录、脚本执行时间、预估执行时长以及脚本描述。
在分布式数据库中删除定时任务信息后,发送刷新定时任务的请求到代理执行服务器,代理执行服务器收到请求后会重新获取所有的定时任务信息,然后保存在内存中,此后代理执行服务器将无需处理删除后的定时任务信息,此外代理执行服务器也可以定时获取数据库中的定时脚本信息更新定时任务信息。
参照图2,示出了本发明的另一种任务脚本管控方法实施例的步骤流程图,本发明实施例具体可以包括如下步骤:
步骤201,获取符合指定执行条件的任务信息;所述任务信息为与文件组织结构视图中的目录层级对应的任务信息,所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
步骤202,根据所述任务信息确定目标任务脚本;
步骤203,执行所述目标任务脚本,并将执行所述目标任务脚本的任务执行数据同步至所述管理后台服务器中,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
其中,指定执行条件可以根据不同需求进行设定。例如,假设需要执行清扫任务,则指定执行条件为清扫,则可以从文件组织结构视图中获取与清扫相关的任务脚本的任务信息,假设需要执行监控任务,则指定执行条件为监控,则可以从文件组织结构视图中获取与监控相关的任务脚本的任务信息。当然,上述指定执行条件仅仅是作为示例,在具体实施时,可以根据实际需求确定指定执行条件,并且指定执行条件可以是用户触发或者系统自动触发,本发明实施例对此无需加以限制。
其中,任务信息中包括任务标识。在本发明实施例中,代理执行服务器可以从分布式数据库中获取到任务信息,并将任务信息放入到线程池中,然后遍历线程池确定符合执行条件的任务信息,以根据任务信息中的任务标识确定目标任务脚本并执行,其中,在执行目标任务脚本的过程中,可以将目标任务脚本的在执行中和执行后的任务执行数据同步至管理服务器中,从而使得用户终端的用户可以实时查看目标任务脚本的执行情况,例如目标任务脚本的执行进度或者执行结果。
在一示例性实施例中,所述将执行所述目标任务脚本的任务执行数据同步至所述管理后台服务器中,包括:
将执行所述目标任务脚本的任务执行数据同步至分布式数据库中,以使所述管理后台服务器从所述分布式数据库同步获取所述目标任务脚本的任务执行数据。
其中,管理后台服务器和代理执行服务器可以通过分布式数据库进行沟通交流,具体地,将目标任务脚本的在执行中和执行后的任务执行数据同步至分布式数据库中,然后管理后台服务器再从分布式数据库中同步获取到目标任务脚本的任务执行数据。
参照图3,示出了本发明的又一种任务脚本管控方法实施例的步骤流程图,本发明实施例具体可以包括如下步骤:
步骤301,展示文件组织结构视图;所述文件组织结构视图为基于部署在管理后台服务器的任务脚本文件所在的目录层级生成的脚本结构视图;所述目录层级用于确定所述任务脚本之间的层级关系;
步骤302,根据所述文件组织结构视图向所述管理后台服务器提交任务信息;所述管理后台服务器用于将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
步骤303,同步获取所述目标任务脚本的任务执行数据,所述任务执行数据为所述管理后台服务器同步从所述目标代理执行服务器获取所得,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
在本发明实施例中,用户可以在用户终端上获取到任务脚本的文件组织结构视图,从而可以根据文件组织结构视图确定所需要执行的任务脚本,在根据所需要执行的任务脚本生成任务信息后,可以提交至管理后台服务器,管理后台服务器则可以将任务信息发布至目标代理执行服务器,或者发布至分布式数据库中,然后目标代理执行服务器就可以根据任务信息确定目标任务脚本并执行,并且,目标代理执行服务器还可以将目标任务脚本执行中和执行后的任务执行数据同步至管理后台服务器,从而通过管理后台服务器将任务执行数据同步至用户终端,供用户实时查看目标任务脚本的执行情况。
本发明实施例的任务脚本管控方法,应用于任务脚本管理调度系统,该系统主要包含如下几个模块:管理后台服务器,用于处理针对任务脚本的请求以及任务脚本的文件组织结构视图的提供;代理执行服务器,作为执行任务脚本的指定的目标机器;分布式数据库,用于存储与任务脚本相关的任务信息和日志记录等等。
参照图4,是本发明的一种任务脚本管理调度系统的架构示意图,其中:
管理后台服务器:包括脚本管理后台和定时任务管理后台,是独立部署的web服务,负责提供对任务脚本的管理系统功能,具体包括:1)提供任务脚本的管理界面(文件组织结构视图),展示任务脚本的列表并支持查看任务脚本的具体内容;2)统一的用户权限控制管理,定制不同用户不同项目的管理权限;3)具备持续集成和持续交付的能力,提供便捷的任务脚本部署、更新方式;提供实时日志记录的展示和历史日志记录的的获取功能,掌握任务脚本的执行情况;4)检索任务脚本部署的目标机器,保证任务脚本能够在指定的环境下运行;5)任务脚本的检验功能,保证本地及代理执行服务器中执行的任务脚本一致。
分布式数据库:用于保存任务脚本的相关数据,例如任务信息,同时分布式数据库也是管理后台服务器与代理执行服务器之间信息交流渠道。分布式数据库主要负责存储定时任务脚本的定时任务信息,代理执行服务器在接收到管理后台服务器的刷新请求后,可以从分布式数据库中获取所有的定时任务信息,再定时检查是否执行相应的任务脚本。在任务脚本执行的过程中,往往会产生大量的日志记录,这些日志记录也可以存储在分布式数据库中,方便用户确认任务脚本的执行情况,如果发生错误或异常,还可以提供必要的信息定位或还原功能。
代理执行服务器:主要承担了任务脚本的执行功能,包括:1)响应管理后台服务器的任务执行请求,调用子进程执行目标任务脚本;2)管理已经注册的定时任务信息,在符合执行条件(例如达到特定时间)执行相应的任务脚本;3)检查本地任务脚本与目标任务脚本是否一致,保证任务脚本没有被破坏或修改;4)检查任务脚本的执行情况,实时更新任务脚本的执行情况;5)负责记录任务脚本的执行情况的日志记录,提供任务脚本执行的告警功能;6)各代理执行服务器通过注册中心上报自身的信息,例如IP地址,以及特定执行的任务脚本,以便管理后台服务器管理多节点部署的代理执行服务器。
参照图5,是本发明的一种定时任务脚本的处理架构示意图,代理执行服务器执行定时任务脚本的具体流程为:
1)新增定时任务信息时,管理后台服务器需要对用户的登录状态及权限进行验证,如果登录已过期或者超出权限,则触发告警提示;
2)在通过验证后,管理后台服务器将定时任务信息存入分布式数据库中,并通过提示来确认定时任务信息对应的定时任务脚本的配置。具体地,可以有以下的任务脚本参数可供配置:目标机器的IP地址、目标机器的服务、任务脚本的目录层级、任执行时间、预估执行时长以及脚本描述;
3)在定时任务信息存入分布式数据库后,管理后台服务器发送刷新请求至代理执行服务器,代理执行服务器收到请求后可以从分布式数据库中重新获取所有的定时任务信息,然后保存在内存中,此外代理执行服务器可以定时获取分布式数据库中的定时任务信息进行更新;
4)对于从分布式数据库中获取的定时任务信息,可以基于代理执行服务器的代理程序进行事件循环,具体地:
在代理程序的事件循环中,每隔一秒会判断一次所有的定时任务信息的配置,并将符合执行条件的定时任务信息推送到线程池中等待执行;
在代理程序的事件循环中,每隔一分钟会检查一次定时任务信息对应的目标任务脚本的执行情况,判断当前任务脚本是否重复执行、是否少执行、执行是否已结束等情况,并实时日志记录中更新;
在代理程序的事件循环中,每隔一分钟会检查一次定时任务脚本的执行持续时间,对执行超时的定时任务脚本进行告警,并实时日志记录中更新;
在代理服务的事件循环中,每隔一分钟会检查一次定时任务脚本的错误日志记录,收集异常的定时任务信息,发起告警并更新定时任务脚本的执行状态,并实时日志记录中更新;
5)用户可以通过管理后台服务器,从分布式数据库中获取定时任务信息的当前执行的定时任务信息的日志记录和历史执行的定时任务信息的历史日志记录,确认定时任务脚本的执行情况。
综上可知,应用本发明实施例来管控任务脚本至少具有如下优点:
1)在任务脚本管理调度系统的系统架构上,采用管理后台-执行代理的架构模式,降低了系统部署的复杂度,无论是管理后台还是执行代理的节点,都能够高效地进行扩容,保障系统的可扩展性和可用性,另外,在该系统架构下采用了多种服务通信和数据交换的方式。
2)在任务脚本的更新部署上,管理后台提供了图形化的文件管理系统,用户能够简单直观地浏览任务脚本的目录结构,查看任务脚本的具体内容,执行已经通过验证的任务脚本,大量简化了用户的操作,降低了人工误操作的可能性。
3)在权限管理上,管理后台提供了必要的权限管理手段,保证了业务之间的隔离,方便了任务脚本的管理在业务层面的横向扩展,既不会增加用户使用和服务部署的复杂度,也保证不同业务间的任务脚本不会相互影响。
4)在任务脚本执行反馈上,任务脚本管理调度系统在实时日志记录的输出、进程异步监控、多形式告警方面提供支持,以多种反馈的形式让用户能够全面地掌握系统中任务脚本的执行情况。
本发明实施例中,任务脚本的执行代理集群(代理执行服务器)可以采用抢占式的任务执行机制,相同的业务节点在到达定时任务信息的执行时间后,都可以尝试去执行任务脚本,当然只有一个节点会抢占成功并开始执行。当然,除抢占式的执行机制外,还可以采用主节点(master)进行任务分派的方式,并相应设置master故障转移及节点之间的通信的处理方案。另外,本发明实施例可以以单个任务脚本作为调度的单位,也可以以任务流的方式组织任务脚本的调度,这样在处理任务脚本间的数据依赖或时序依赖时,可以以较小的配置代价获取使用上的便利性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了本发明的一种任务脚本管控装置实施例的结构框图,本发明实施例具体可以包括如下模块:
提供模块601,用于提供已部署的任务脚本的文件组织结构视图;所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
发布模块602,用于在接收到针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
同步模块603,用于同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
在一示例性实施例中,所述装置还包括,部署模块,所述部署模块用于获取任务脚本以及所述任务脚本的文件组织信息;所述文件组织信息包括所述任务脚本所在的目录层级;其中,所述目录层级为基于所述任务脚本的功能进行划分;根据所述文件组织信息部署所述任务脚本。
在一示例性实施例中,所述发布模块602用于在接收针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息保存至分布式数据库中;所述任务信息包括任务标识;确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述任务信息,并根据所述任务标识执行对应的目标任务脚本。
在一示例性实施例中,所述发布模块602,用于根据所述任务标识从注册中心查询到目标代理执行服务器;或者,根据所述任务信息中的IP地址确定目标代理执行服务器。
在一示例性实施例中,所述任务信息包括用户标识;所述所述发布模块502,用于当所述用户标识具有处理任务信息的权限时,将所述任务信息保存至分布式数据库中;当所述用户标识不具有处理任务信息的权限时,触发告警信息。
在一示例性实施例中,所述装置还包括,保存模块,用于将所述任务执行数据实时保存至所述目标任务脚本的日志记录中。
在一示例性实施例中,所述部署模块,用于获取所述任务脚本的相关信息;所述相关信息至少包括脚本内容、修改日期、文件大小和MD5值;根据所述脚本内容、所述修改日期和所述文件大小生成验证MD5值;当所述验证MD5值与所述MD5值相同时,根据所述文件组织信息部署所述任务脚本。
在一示例性实施例中,所述提供模块601,用于接收基于所述文件组织结构视图触发的任务脚本的结构查询请求;所述请求中包括用户标识;当所述用户标识具有查询的权限时,根据所述任务脚本所在的目录层级生成文件组织结构视图;向所述用户终端提供所述文件组织结构视图,以在所述用户终端展示所述文件组织结构视图。
在一示例性实施例中,所述装置还包括,查看模块,所述查看模块用于当接收到基于所述文件组织结构视图触发的任务脚本的内容查询请求时,获取所述任务脚本的文件内容;向所述用户终端提供所述文件内容,以在所述用户终端展示所述任务脚本的文件内容。
在一示例性实施例中,所述装置还包括修改模块,所述修改模块用于在接收针对所述分布式数据库中的任务信息的修改请求时,修改所述分布式数据库中对应的任务信息;确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述修改后的任务信息,并根据所述修改后的任务信息中的任务标识执行对应的目标任务脚本。
在一示例性实施例中,所述装置还包括删除模块,所述删除模块用于在接收针对所述分布式数据库中的任务信息的删除请求时,删除所述分布式数据库中对应的任务信息;确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述删除后的任务信息,以不再执行所述删除后的任务信息中的任务标识对应的目标任务脚本。
参照图7,示出了本发明的另一种任务脚本管控装置实施例的结构框图,本发明实施例具体可以包括如下模块:
获取模块701,用于获取符合指定执行条件的任务信息;所述任务信息为与文件组织结构视图中的目录层级对应的任务信息,所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
确定模块702,用于根据所述任务信息确定目标任务脚本;
执行模块703,用于执行所述目标任务脚本,并将执行所述目标任务脚本的任务执行数据同步至所述管理后台服务器中,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
在一示例性实施例中,所述执行模块703,用于将执行所述目标任务脚本的任务执行数据同步至分布式数据库中,以使所述管理后台服务器从所述分布式数据库同步获取所述目标任务脚本的任务执行数据。
参照图8,示出了本发明的又一种任务脚本管控装置实施例的结构框图,本发明实施例具体可以包括如下模块:
展示模块801,用于展示文件组织结构视图;所述文件组织结构视图为基于部署在管理后台服务器的任务脚本文件所在的目录层级生成的脚本结构视图;所述目录层级用于确定所述任务脚本之间的层级关系;
提交模块802,用于根据所述文件组织结构视图向所述管理后台服务器提交任务信息;所述管理后台服务器用于将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
获取模块803,用于同步获取所述目标任务脚本的任务执行数据,所述任务执行数据为所述管理后台服务器同步从所述目标代理执行服务器获取所得,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上任务脚本管控方法实施例所述的步骤。
本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上任务脚本管控方法实施例所述的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种任务脚本管控方法、一种任务脚本管控装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (19)
1.一种任务脚本管控方法,其特征在于,所述方法包括:
提供已部署的任务脚本的文件组织结构视图,所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
在接收到针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
2.根据权利要求1所述的方法,其特征在于,在所述提供已部署的任务脚本的文件组织结构视图之前,所述方法还包括:
获取任务脚本以及所述任务脚本的文件组织信息;所述文件组织信息包括所述任务脚本所在的目录层级;其中,所述目录层级为基于所述任务脚本的功能进行划分;
根据所述文件组织信息部署所述任务脚本。
3.根据权利要求1所述的方法,其特征在于,所述在接收到针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本,包括:
在接收针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息保存至分布式数据库中;所述任务信息包括任务标识;
确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述任务信息,并根据所述任务标识执行对应的目标任务脚本。
4.根据权利要求1所述的方法,其特征在于,所述确定目标代理执行服务器,包括:
根据所述任务标识从注册中心查询到目标代理执行服务器;
或者,根据所述任务信息中的IP地址确定目标代理执行服务器。
5.根据权利要求3所述的方法,其特征在于,所述任务信息包括用户标识;所述将所述任务信息保存至分布式数据库中,还包括:
当所述用户标识具有处理任务信息的权限时,将所述任务信息保存至分布式数据库中;
当所述用户标识不具有处理任务信息的权限时,触发告警信息。
6.根据权利要求1所述的方法,其特征在于,在所述同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据之后,所述方法还包括:
将所述任务执行数据实时保存至所述目标任务脚本的日志记录中。
7.根据权利要求2所述的方法,其特征在于,所述根据所述文件组织信息部署所述任务脚本,包括:
获取所述任务脚本的相关信息;所述相关信息至少包括脚本内容、修改日期、文件大小和MD5值;
根据所述脚本内容、所述修改日期和所述文件大小生成验证MD5值;
当所述验证MD5值与所述MD5值相同时,根据所述文件组织信息部署所述任务脚本。
8.根据权利要求2所述的方法,其特征在于,所述提供已部署的任务脚本的文件组织结构视图,包括:
接收基于所述文件组织结构视图触发的任务脚本的结构查询请求;所述请求中包括用户标识;
当所述用户标识具有查询的权限时,根据所述任务脚本所在的目录层级生成文件组织结构视图;
向所述用户终端提供所述文件组织结构视图,以在所述用户终端展示所述文件组织结构视图。
9.根据权利要求8所述的方法,其特征在于,所述向所述用户终端提供所述文件组织结构视图,以在所述用户终端展示所述文件组织结构视图之后,所述方法还包括:
当接收到基于所述文件组织结构视图触发的任务脚本的内容查询请求时,获取所述任务脚本的文件内容;
向所述用户终端提供所述文件内容,以在所述用户终端展示所述任务脚本的文件内容。
10.根据权利要求3所述的方法,其特征在于,在所述同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据之后,所述方法还包括:
在接收针对所述分布式数据库中的任务信息的修改请求时,修改所述分布式数据库中对应的任务信息;
确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述修改后的任务信息,并根据所述修改后的任务信息中的任务标识执行对应的目标任务脚本。
11.根据权利要求3所述的方法,其特征在于,在所述同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据之后,所述方法还包括:
在接收针对所述分布式数据库中的任务信息的删除请求时,删除所述分布式数据库中对应的任务信息;
确定目标代理执行服务器,并向所述目标代理执行服务器发送任务刷新请求,所述目标代理执行服务器用于根据所述任务刷新请求从所述分布式数据库中获取所述删除后的任务信息,以不再执行所述删除后的任务信息中的任务标识对应的目标任务脚本。
12.一种任务脚本管控方法,其特征在于,所述方法包括:
获取符合指定执行条件的任务信息;所述任务信息为与文件组织结构视图中的目录层级对应的任务信息,所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
根据所述任务信息确定目标任务脚本;
执行所述目标任务脚本,并将执行所述目标任务脚本的任务执行数据同步至所述管理后台服务器中,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
13.根据权利要求12所述的方法,其特征在于,所述将执行所述目标任务脚本的任务执行数据同步至所述管理后台服务器中,包括:
将执行所述目标任务脚本的任务执行数据同步至分布式数据库中,以使所述管理后台服务器从所述分布式数据库同步获取所述目标任务脚本的任务执行数据。
14.一种任务脚本管控方法,其特征在于,所述方法包括:
展示文件组织结构视图;所述文件组织结构视图为基于部署在管理后台服务器的任务脚本所在的目录层级生成的脚本结构视图;所述目录层级用于确定所述任务脚本之间的层级关系;
根据所述文件组织结构视图向所述管理后台服务器提交任务信息;所述管理后台服务器用于将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
同步获取所述目标任务脚本的任务执行数据,所述任务执行数据为所述管理后台服务器同步从所述目标代理执行服务器获取所得,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
15.一种任务脚本管控装置,其特征在于,所述装置包括:
提供模块,用于提供已部署的任务脚本的文件组织结构视图;所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
发布模块,用于在接收到针对所述文件组织结构视图提交的与所述目录层级对应的任务信息时,将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
同步模块,用于同步获取所述目标代理执行服务器执行所述目标任务脚本的任务执行数据,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
16.一种任务脚本管控装置,其特征在于,所述装置包括:
获取模块,用于获取符合指定执行条件的任务信息;所述任务信息为与文件组织结构视图中的目录层级对应的任务信息,所述文件组织结构视图为基于所述任务脚本所在的目录层级生成的脚本结构视图,所述目录层级用于确定所述任务脚本之间的层级关系;
确定模块,用于根据所述任务信息确定目标任务脚本;
执行模块,用于执行所述目标任务脚本,并将执行所述目标任务脚本的任务执行数据同步至所述管理后台服务器中,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
17.一种任务脚本管控装置,其特征在于,所述方法包括:
展示模块,用于展示文件组织结构视图;所述文件组织结构视图为基于部署在管理后台服务器的任务脚本文件所在的目录层级生成的脚本结构视图;所述目录层级用于确定所述任务脚本之间的层级关系;
提交模块,用于根据所述文件组织结构视图向所述管理后台服务器提交任务信息;所述管理后台服务器用于将所述任务信息发布至目标代理执行服务器,以使所述目标代理执行服务器根据所述任务信息执行对应的目标任务脚本;
获取模块,用于同步获取所述目标任务脚本的任务执行数据,所述任务执行数据为所述管理后台服务器同步从所述目标代理执行服务器获取所得,所述任务执行数据包括所述目标任务脚本执行中的执行状态数据和所述目标任务脚本执行后的执行结果数据。
18.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至14中任一项所述的任务脚本管控方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至14中任一项所述的任务脚本管控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011533062.0A CN112579101B (zh) | 2020-12-21 | 2020-12-21 | 任务脚本管控方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011533062.0A CN112579101B (zh) | 2020-12-21 | 2020-12-21 | 任务脚本管控方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579101A true CN112579101A (zh) | 2021-03-30 |
CN112579101B CN112579101B (zh) | 2023-07-18 |
Family
ID=75139403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011533062.0A Active CN112579101B (zh) | 2020-12-21 | 2020-12-21 | 任务脚本管控方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579101B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434194A (zh) * | 2021-05-14 | 2021-09-24 | 武汉旷视金智科技有限公司 | 持续集成与交付系统、方法、电子设备及存储介质 |
CN113641397A (zh) * | 2021-10-12 | 2021-11-12 | 湖南映客互娱网络信息有限公司 | 带操作界面的脚本服务管理系统及管理方法 |
CN114095495A (zh) * | 2021-11-29 | 2022-02-25 | 北京奇虎科技有限公司 | 终端控制方法、设备、存储介质及装置 |
CN114363143A (zh) * | 2021-12-14 | 2022-04-15 | 杭州东信北邮信息技术有限公司 | 一种基于小程序的运维操作方法和系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103001813A (zh) * | 2013-01-08 | 2013-03-27 | 太仓市同维电子有限公司 | 一种用于网管设备中配置管理的方法 |
US20130191439A1 (en) * | 2012-01-19 | 2013-07-25 | Microsoft Corporation | Managing script file dependencies and load times |
CN106991104A (zh) * | 2016-01-21 | 2017-07-28 | 泰康保险集团股份有限公司 | 数据库脚本部署装置和数据库脚本部署方法 |
CN108900482A (zh) * | 2018-06-13 | 2018-11-27 | 平安科技(深圳)有限公司 | 脚本的执行方法、服务器管理系统及存储介质 |
CN109308285A (zh) * | 2018-10-11 | 2019-02-05 | 平安科技(深圳)有限公司 | 数据库脚本管理方法、装置、计算机设备及存储介质 |
CN110781007A (zh) * | 2019-10-31 | 2020-02-11 | 广州市网星信息技术有限公司 | 任务处理方法、装置、服务器、客户端、系统和存储介质 |
CN111752953A (zh) * | 2020-06-29 | 2020-10-09 | 北京百度网讯科技有限公司 | 标识生成方法、装置、设备以及存储介质 |
CN111858253A (zh) * | 2020-07-23 | 2020-10-30 | 平安普惠企业管理有限公司 | 服务器运维管控方法、装置、计算机设备及存储介质 |
CN112000372A (zh) * | 2020-08-24 | 2020-11-27 | 福建天晴在线互动科技有限公司 | 一种Linux系统下执行命令的方法以及其系统 |
-
2020
- 2020-12-21 CN CN202011533062.0A patent/CN112579101B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191439A1 (en) * | 2012-01-19 | 2013-07-25 | Microsoft Corporation | Managing script file dependencies and load times |
CN103001813A (zh) * | 2013-01-08 | 2013-03-27 | 太仓市同维电子有限公司 | 一种用于网管设备中配置管理的方法 |
CN106991104A (zh) * | 2016-01-21 | 2017-07-28 | 泰康保险集团股份有限公司 | 数据库脚本部署装置和数据库脚本部署方法 |
CN108900482A (zh) * | 2018-06-13 | 2018-11-27 | 平安科技(深圳)有限公司 | 脚本的执行方法、服务器管理系统及存储介质 |
CN109308285A (zh) * | 2018-10-11 | 2019-02-05 | 平安科技(深圳)有限公司 | 数据库脚本管理方法、装置、计算机设备及存储介质 |
CN110781007A (zh) * | 2019-10-31 | 2020-02-11 | 广州市网星信息技术有限公司 | 任务处理方法、装置、服务器、客户端、系统和存储介质 |
CN111752953A (zh) * | 2020-06-29 | 2020-10-09 | 北京百度网讯科技有限公司 | 标识生成方法、装置、设备以及存储介质 |
CN111858253A (zh) * | 2020-07-23 | 2020-10-30 | 平安普惠企业管理有限公司 | 服务器运维管控方法、装置、计算机设备及存储介质 |
CN112000372A (zh) * | 2020-08-24 | 2020-11-27 | 福建天晴在线互动科技有限公司 | 一种Linux系统下执行命令的方法以及其系统 |
Non-Patent Citations (3)
Title |
---|
BOCI LIN等: "Comparison between JSON and XML in Applications Based on AJAX", 《2012 INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND SERVICE SYSTEM》, pages 1174 - 1177 * |
董俊伶: "浅谈自动化运维工具在企业信息系统运维中的应用", 《数字通信世界》, pages 210 * |
陈琪: "自动化测试平台的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 205 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434194A (zh) * | 2021-05-14 | 2021-09-24 | 武汉旷视金智科技有限公司 | 持续集成与交付系统、方法、电子设备及存储介质 |
CN113641397A (zh) * | 2021-10-12 | 2021-11-12 | 湖南映客互娱网络信息有限公司 | 带操作界面的脚本服务管理系统及管理方法 |
CN113641397B (zh) * | 2021-10-12 | 2021-12-21 | 湖南映客互娱网络信息有限公司 | 带操作界面的脚本服务管理系统及管理方法 |
CN114095495A (zh) * | 2021-11-29 | 2022-02-25 | 北京奇虎科技有限公司 | 终端控制方法、设备、存储介质及装置 |
CN114095495B (zh) * | 2021-11-29 | 2023-12-05 | 北京奇虎科技有限公司 | 终端控制方法、设备、存储介质及装置 |
CN114363143A (zh) * | 2021-12-14 | 2022-04-15 | 杭州东信北邮信息技术有限公司 | 一种基于小程序的运维操作方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112579101B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112579101B (zh) | 任务脚本管控方法、装置、电子设备和存储介质 | |
US8978008B2 (en) | Software configuration control wherein containers are associated with physical storage of software application versions in a software production landscape | |
CN110569085A (zh) | 配置文件加载方法及系统 | |
CN111125065B (zh) | 可视化数据同步方法、系统、终端和计算机可读存储介质 | |
CN110619226A (zh) | 一种基于平台的数据处理方法、系统、设备及存储介质 | |
CN108156030B (zh) | 一种配置策略同步的方法及装置 | |
JP2013257790A (ja) | プログラマブル表示器 | |
EP2513786A1 (en) | A method of updating versioned software using a shared cache | |
CN110543335A (zh) | 应用程序配置管理方法及系统 | |
CN112162761A (zh) | 自动化部署项目至公有云容器化平台的方法、系统及设备 | |
CN114003439B (zh) | 数据备份方法、装置、设备及存储介质 | |
CN110737670A (zh) | 一种集群数据一致性的保障方法、装置及系统 | |
JP4651562B2 (ja) | 電子カルテ管理装置及び電子カルテ管理方法 | |
CN110852571A (zh) | 加盟商的房源管理方法、计算机可读存储介质及服务器 | |
CN114780137A (zh) | 软件版本管理方法及装置、存储介质及电子设备 | |
US10728323B2 (en) | Method and apparatus for operating infrastructure layer in cloud computing architecture | |
CN115080309A (zh) | 数据备份系统、方法、存储介质以及电子设备 | |
CN115129468A (zh) | 一种pdms/e3d服务器间的数据库同步方法、装置及介质 | |
CN113094053B (zh) | 产品的交付方法及装置、计算机存储介质 | |
CN109313636A (zh) | 用于监视服务器系统的改变的方法和系统 | |
CN112351098A (zh) | 拷机服务集群系统、控制方法、装置及介质 | |
CN105955830B (zh) | 一种应用模块间的通信方法及系统 | |
CN111666035B (zh) | 一种分布式存储系统的管理方法及装置 | |
CN117971557A (zh) | 一种数据备份方法、还原方法、系统以及存储介质 | |
JPH01291333A (ja) | 事象振り分け処理方式 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |