CN113296916A - 脚本调度方法、设备、存储介质及计算机程序产品 - Google Patents

脚本调度方法、设备、存储介质及计算机程序产品 Download PDF

Info

Publication number
CN113296916A
CN113296916A CN202110689582.9A CN202110689582A CN113296916A CN 113296916 A CN113296916 A CN 113296916A CN 202110689582 A CN202110689582 A CN 202110689582A CN 113296916 A CN113296916 A CN 113296916A
Authority
CN
China
Prior art keywords
execution
scheduling
script
task
scripts
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
CN202110689582.9A
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.)
WeBank Co Ltd
Original Assignee
WeBank 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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202110689582.9A priority Critical patent/CN113296916A/zh
Publication of CN113296916A publication Critical patent/CN113296916A/zh
Pending legal-status Critical Current

Links

Images

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/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

脚本调度方法、设备、存储介质及计算机程序产品
技术领域
本申请涉及金融科技(Fintech)的分布式技术领域,尤其涉及一种脚本调度方法、设备、存储介质及计算机程序产品。
背景技术
随着金融科技及互联网技术的迅速发展,越来越多的技术(如分布式、大数据、人工智能、区块链Blockchain等)应用在金融领域,以实现各种数据处理和业务处理。
随着计算机技术的迅速发展,计算机技术在各行各业中被普遍应用,且编程语言越来越多元化。而随着计算机技术的技术更新和编程语言的多元化,对于非计算机专业人员的研究者或数据分析师来说,其比较熟悉业务流程和数据处理流程,但对于程序的工程化能力非常弱。而随着大数据技术的迅速发展,数据处理越来越复杂化,因此需要对不同的脚本进行调度,然而,由于非计算机专业人员对于程序的工程化能力非常弱,其进行脚本调度的难度高,进而导致脚本调度效率低。
发明内容
本申请的主要目的在于提供一种脚本调度方法、设备、存储介质及计算机程序产品,旨在提高脚本调度效率。
为实现上述目的,本申请提供一种脚本调度方法,所述脚本调度方法包括:
获取进行脚本调度的调度任务,并基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序;
基于所述调度顺序,从分布式系统中调度所述若干执行脚本,其中,所述若干执行脚本部署于所述分布式系统的多个分布式节点。
可选地,所述调度任务包括若干执行层级,所述基于所述调度任务确定所述若干执行脚本的调度顺序的步骤包括:
基于所述调度任务确定所述若干执行层级中步骤层级的执行顺序,其中,所述步骤层级处于所述若干执行层级的最底层;
基于所述执行顺序,确定所述若干执行脚本的调度顺序。
可选地,所述若干执行层级包括任务层级、子任务层级和步骤层级,所述子任务层级为所述任务层级的子层级,所述步骤层级为所述子任务层级的子层级,所述基于所述调度任务确定所述若干执行层级中步骤层级的执行顺序的步骤包括:
基于所述调度任务确定所述任务层级的第一执行顺序;
基于所述调度任务和所述第一执行顺序确定所述子任务层级的第二执行顺序;
基于所述调度任务和所述第二执行顺序确定所述步骤层级的第三执行顺序。
可选地,所述获取进行脚本调度的调度任务的步骤之后,还包括:
基于所述调度任务确定所述若干执行脚本对应的远程访问信息集,其中,所述远程访问信息集中一远程访问信息包括网际互连协议IP地址和端口号,所述若干执行脚本中一执行脚本对应所述远程访问信息集中一远程访问信息;
对所述远程访问信息集分别进行网络连通性检测,得到若干连通性检测结果;
若所述若干连通性检测结果中一连通性检测结果存在异常,则上报异常信息并停止所述调度任务。
可选地,所述获取进行脚本调度的调度任务的步骤之后,还包括:
基于所述调度任务确定所述若干执行脚本对应的远程登录信息集,其中,所述远程登录信息集中一远程登录信息包括登录用户,所述若干执行脚本中一执行脚本对应所述远程登录信息集中一远程登录信息;
对所述远程登录信息集分别进行登录权限检测,得到若干登录权限检测结果;
若所述若干登录权限检测结果中一登录权限检测结果存在异常,则上报异常信息并停止所述调度任务。
可选地,所述获取进行脚本调度的调度任务的步骤之后,还包括:
基于所述调度任务确定所述若干执行脚本对应的执行脚本路径集,其中,所述执行脚本路径集中一执行脚本路径为执行脚本的文件存储路径,所述若干执行脚本中一执行脚本对应所述执行脚本路径集中一执行脚本路径;
对所述执行脚本路径集分别进行执行权限检测,得到若干执行权限检测结果;
若所述若干执行权限检测结果中一执行权限检测结果为无执行权限,则上报异常信息并停止所述调度任务。
可选地,所述基于所述调度顺序,从多个分布式节点中调度所述若干执行脚本的步骤之后,还包括:
基于脚本调度结果,执行所述若干执行脚本中的当前执行脚本,并检测所述当前执行脚本对应步骤层级的执行状态,其中,所述脚本调度结果包括所述若干执行脚本的执行顺序;
若所述执行状态为异常状态,则基于所述调度任务确定所述当前执行脚本的事务类型;
基于所述事务类型确定对应的若干回滚脚本,并调度和执行所述若干回滚脚本。
此外,为实现上述目的,本申请还提供一种脚本调度设备,所述脚本调度设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的脚本调度程序,所述脚本调度程序被所述处理器执行时实现如上所述的脚本调度方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有脚本调度程序,所述脚本调度程序被处理器执行时实现如上所述的脚本调度方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上所述的脚本调度方法的步骤。
本申请提供一种脚本调度方法、设备、存储介质及计算机程序产品,首先获取进行脚本调度的调度任务,与现有技术采用复杂的编程手段或环境部署手段等程序工程化手段相比,本申请中调度任务无需用户进行复杂的程序工程化,即对程序的工程化能力要求低,从而降低了调度任务的脚本开发难度,以使用户可快速触发调度任务,进而提高脚本调度效率,并基于调度任务确定待调度的若干执行脚本及若干执行脚本的调度顺序,以基于调度顺序快速实现对执行脚本的串并联调度,从而进一步提高脚本调度效率,最后,基于调度顺序,从分布式系统中调度若干执行脚本,其中,若干执行脚本部署于分布式系统的多个分布式节点,需要说明的是,若干执行脚本部署于多个分布式节点中,相比现有技术中基于单机执行将执行脚本合并或者重新开发,本申请无需进行复杂的合并开发或重新开发的流程,进而降低开发成本和进行脚本调度的操作难度,以使用户无需接触复杂的开发流程,且用户无需进行复杂的操作,从而进一步提高脚本调度效率。综上所述,本申请可提高脚本调度效率。
附图说明
图1为本申请实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本申请脚本调度方法第一实施例的流程示意图;
图3为本申请实施例涉及的串并联调度示意图;
图4为本申请实施例涉及的子任务执行顺序示意图;
图5为本申请实施例涉及的步骤执行顺序示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例涉及的技术术语:
Telnet远程终端协议,是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。其提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。Telnet是常用的远程控制服务器的方法。
SSH(Secure Shell)安全壳协议,为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。
参照图1,图1为本申请实施例方案涉及的硬件运行环境的终端结构示意图。
本申请实施例终端为脚本调度设备,该脚本调度设备可以为PC(personalcomputer,个人计算机)、微型计算机、笔记本电脑、服务器等具有处理功能的终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU(Central Processing Unit,中央处理器),通信总线1002,网络接口1003,存储器1004。其中,通信总线1002用于实现这些组件之间的连接通信。网络接口1003可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1004可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1004中可以包括操作系统、网络通信模块、用户接口模块以及脚本调度程序。
在图1所示的终端中,处理器1001可以用于调用存储器1004中存储的脚本调度程序,并执行以下脚本调度方法的各个实施例。
基于上述硬件结构,提出本申请脚本调度方法的各个实施例。
本申请提供一种脚本调度方法。
参照图2,图2为本申请脚本调度方法第一实施例的流程示意图。
在本实施例中,该脚本调度方法包括:
步骤S10,获取进行脚本调度的调度任务,并基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序;
在本实施例中,脚本调度方法可以应用于脚本管理服务,该脚本管理服务可以部署于一服务器,该服务器可以为若干执行脚本所在的多个分布式节点中的一分布式节点,也可以为独立于若干执行脚本所在的多个分布式节点的另一分布式节点。
在本实施例中,获取进行脚本调度的调度任务,并基于该调度任务确定待调度的若干执行脚本及该若干执行脚本的调度顺序。具体的,获取进行脚本调度的调度任务对应的调度任务脚本,基于该调度任务脚本中所有的执行脚本,确定待调度的若干执行脚本;并基于调度任务脚本中的若干执行层级,确定该若干执行脚本的调度顺序。其中,调度任务脚本为进行脚本调度任务的脚本,其用于对若干执行脚本进行调度,该调度任务脚本可以由各种编程语言进行编辑,例如YAML语言(Ain't Markup Language,非标记语言)或XML语言(EXtensible Markup Language,可扩展标记语言)。执行层级为纵向关联的执行层级,用于对调度任务的步骤进行划分,例如,若干执行层级包括任务层级、子任务层级和步骤层级,该若干执行层级从上往下的父子关系依次为任务层级、子任务层级和步骤层级。当然,执行层级的层数可以根据实际需求进行设定,可以包括更多或更少的执行层级,此处不作限定。
其中,调度任务为进行脚本调度的任务,该调度任务的内容分为若干执行层级,例如任务层级、子任务层级和步骤层级。该调度任务包括以下至少一种属性:事务属性、执行脚本路径、回滚脚本路径、是否允许异常、远程访问信息、远程登录信息等。该远程访问信息可以包括IP(Internet Protocol,网际互连协议)地址和端口号;该远程登录信息可以包括登录用户,该登录用户可以包括用户名和用户密码。
其中,执行脚本为进行业务处理和数据处理的脚本,该执行脚本可以接收参数完成对应的数据处理或者算法计算,该参数可以是时间或者基于脚本逻辑设计的字段。
其中,若干执行脚本的调度顺序为若干执行脚本被调用的时间顺序,可以理解,该调度顺序也是若干执行脚本的执行顺序。该调度顺序包括串联顺序和并联顺序,串联顺序明确指出了脚本调度的前后顺序,并联顺序表示并联的脚本可以并行调度。例如,参照图3,图3为本申请实施例涉及的串并联调度示意图,对于子步骤串并行来说,先执行子任务1步骤1、再并行执行子任务1步骤2和子任务1步骤2',最后执行子任务1步骤3,其中,每个步骤均包括一个执行脚本,执行相应步骤的同时将会调度对应的执行脚本;对于子任务串并行来说,先执行子任务1、再并行执行子任务2和子任务2',最后执行子任务3,其中,每个子任务均至少包括一个步骤,每个步骤均包括一个执行脚本,执行相应步骤的同时将会调度对应的执行脚本。
在本实施例中,获取进行脚本调度的调度任务的方式可以是:
方式一:获取进行脚本调度的需求信息,并基于预设编辑规则对所述需求信息进行编辑,得到调度任务脚本;对所述调度任务脚本进行解析,得到进行脚本调度的调度任务。
其中,需求信息由用户根据脚本调度的需求进行设定。预设编辑规则根据该调度任务脚本的语言进行设定,此处不作具体赘述。
在方式一中,用户只需输入进行脚本调度的需求信息,无需编辑调度任务脚本,从而降低脚本调度的学习门槛,进而降低脚本调度的难度。
方式二:通过拖拉拽、零代码编程或积木编程的方式,确定进行脚本调度的需求信息;基于预设编辑规则对所述需求信息进行编辑,得到调度任务脚本;对所述调度任务脚本进行解析,得到进行脚本调度的调度任务。
其中,需求信息由用户根据脚本调度的需求进行设定。预设编辑规则根据该调度任务脚本的语言进行设定,此处不作具体赘述。
在方式二中,对于用户而言,通过拖拉拽、零代码编程或积木编程的方式相比复杂的开发语言,可提高调度任务脚本的开发效率,降低调度任务脚本的开发复杂度,进而降低脚本调度的难度。
方式三:获取进行脚本调度的需求信息,并基于非标记语言YAML对所述需求信息进行编辑生成YAML脚本;对所述YAML脚本进行解析,得到进行脚本调度的调度任务。
在本实施例中,获取进行脚本调度的需求信息,并基于非标记语言YAML对该需求信息进行编辑生成YAML脚本,具体的,获取进行脚本调度的需求信息,并基于预设YAML编辑规则对需求信息进行编辑,得到调度任务脚本。对YAML脚本进行解析,得到进行脚本调度的调度任务,具体的,按照YAML解析规则对YAML脚本进行解析,得到进行脚本调度的调度任务。
其中,需求信息由用户根据脚本调度的需求进行设定。预设YAML编辑规则根据该YAML语言进行设定,YAML解析规则也根据该YAML语言进行设定,此处不作具体赘述。
在方式三中,YAML是一种简洁的非标记语言,YAML以数据为中心,使用空白、缩进、分行组织数据,从而使得表示更加简洁易读。因此,基于简明可解释的调度脚本,可降低脚本调度的难度,进而提高脚本调度效率。
在一实施例中,所述基于调度任务脚本中的若干执行层级,确定该若干执行脚本的调度顺序的步骤包括:
基于调度任务脚本中的若干执行层级的名称和预设层级命名规则,确定该若干执行脚本的调度顺序。其中,预设命名规则可以根据实际需要进行设定,例如,子任务层级的名称可通过childJob+下划线+数字的方式命名,数字相同且属于同一层级则可以并行执行。例如,childJob_1和childJob_2是按顺序执行的,childJob_1和childJob_1是并行执行的。
进一步地,在上述步骤S10中,获取进行脚本调度的调度任务之后,该脚本调度方法还包括:
基于所述调度任务对若干执行脚本进行脚本权限预检测,得到预检测结果;若所述预检测结果为正常,则正常提交并执行所述调度任务,即执行后续基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序的步骤;若所述预检测结果为异常,则上报异常信息并停止所述调度任务。其中,脚本权限可以包括服务器权限和脚本执行权限,服务器权限可以包括服务器访问权限和服务器登录权限。异常信息的内容可以根据实际情况进行设定,例如服务器访问权限有异常调度任务无法执行、服务器登录权限有异常调度任务无法执行等;该异常信息还可以包括异常发生的位置,以供用户基于该异常信息修改对应的调度任务,以使修改后的调度任务进行脚本权限预检测的预检测结果为正常。
在一些实施例中,所述基于所述调度任务对若干执行脚本进行脚本权限预检测,得到预检测结果的步骤包括:
基于所述调度任务确定若干执行脚本对应的远程访问信息集,并对所述远程访问信息集分别进行网络连通性检测,得到若干连通性检测结果;和/或,基于所述调度任务确定若干执行脚本对应的远程登录信息集,并对所述远程登录信息集分别进行登录权限检测,得到若干登录权限检测结果;和/或,基于所述调度任务确定若干执行脚本对应的执行脚本路径集,对所述执行脚本路径集分别进行执行权限检测,得到若干执行权限检测结果。具体的执行流程可以参照下述第三实施例,此处不再一一赘述。
进一步地,在上述步骤S10中,获取进行脚本调度的调度任务之后,该脚本调度方法还包括:
若检测到调度任务执行指令时,执行所述调度任务,即进入基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序的步骤,其中,所述调度任务执行指令通过操作页面进行触发;或者,若检测到定时器触发调度任务执行指令时,执行所述调度任务,即进入基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序的步骤,其中,定时器可以由cron语法实现。
步骤S20,基于所述调度顺序,从分布式系统中调度所述若干执行脚本,其中,所述若干执行脚本部署于所述分布式系统的多个分布式节点。
在本实施例中,基于该调度顺序,从分布式系统中调度若干执行脚本,其中,若干执行脚本部署于分布式系统的多个分布式节点。具体的,基于该调度顺序,确定该若干执行脚本中第一个执行脚本,基于调度任务确定第一个执行脚本对应的远程访问信息,其中,远程访问信息包括IP地址和端口号;基于该远程访问信息访问对应的分布式节点;基于调度任务确定第一个执行脚本对应的远程登录信息,其中,远程登录信息包括登录用户;基于该远程登录信息登录该分布式节点;基于调度任务确定第一个执行脚本对应的执行脚本路径;基于该执行脚本路径调用该分布式节点中存储的执行脚本。相应的,该若干个执行脚本中第二个执行脚本以及后续各个执行脚本与上述第一个执行脚本的执行流程基本相同,此处不再赘述,
其中,IP地址用于指示访问的目标节点(目标服务器)。端口号为整数,其用于标记端口,而目标节点在不同的端口提供不同的服务,即一个目标节点可以提供多种服务,多种服务通过不同端口进行提供。
其中,登录用户可以包括用户名和用户密码,该登录用户可以为root用户(管理员用户)或者普通用户,该普通用户包括系统用户和自定义用户。该系统用户是为了满足自身系统管理所内建的账号;该自定义用户由root用户创建,其用于为用户提供登录服务器系统的账号。
其中,执行脚本路径为执行脚本在一分布式节点中的存储路径,其用于指示执行脚本的调用位置。该执行脚本路径可以包括目录路径和执行脚本的名称。例如,在一分布式节点的系统为Linux系统,执行脚本路径为/opt/test.sh。
需要说明的是,一个分布式节点可以包括一个执行脚本,也可以包括两个或两个以上的执行脚本,也就是说,若干执行脚本部署于多个分布式节点,该多个分布式节点组成一分布式系统。其中,若干执行脚本的节点部署情况可以根据业务需求进行设定。
在具体实施例中,可以通过Telnet(远程终端协议),基于远程访问信息访问对应的分布式节点。可以通过SSH(Secure Shell,安全壳协议),基于远程登录信息登录分布式节点,当然也可以采用其他远程登录的方式进行登录。
本申请实施例提供一种脚本调度方法,首先获取进行脚本调度的调度任务,与现有技术采用复杂的编程手段或环境部署手段等程序工程化手段相比,本申请实施例中调度任务无需用户进行复杂的程序工程化,即对程序的工程化能力要求低,从而降低了调度任务的脚本开发难度,以使用户可快速触发调度任务,进而提高脚本调度效率,并基于调度任务确定待调度的若干执行脚本及若干执行脚本的调度顺序,以基于调度顺序快速实现对执行脚本的串并联调度,从而进一步提高脚本调度效率,最后,基于调度顺序,从分布式系统中调度若干执行脚本,其中,若干执行脚本部署于分布式系统的多个分布式节点,需要说明的是,若干执行脚本部署于多个分布式节点中,相比现有技术中基于单机执行将执行脚本合并或者重新开发,本申请实施例无需进行复杂的合并开发或重新开发的流程,进而降低开发成本和进行脚本调度的操作难度,以使用户无需接触复杂的开发流程,且用户无需进行复杂的操作,从而进一步提高脚本调度效率。综上所述,本申请实施例可提高脚本调度效率。
进一步地,基于上述第一实施例,提出本申请脚本调度方法的第二实施例。
在本实施例中,所述调度任务包括若干执行层级,上述步骤S10中,基于所述调度任务确定所述若干执行脚本的调度顺序,包括:
步骤A11,基于所述调度任务确定所述若干执行层级中步骤层级的执行顺序,其中,所述步骤层级处于所述若干执行层级的最底层;
在本实施例中,基于调度任务确定若干执行层级中步骤层级的执行顺序,其中,步骤层级处于若干执行层级的最底层。具体的,获取进行脚本调度的调度任务对应的调度任务脚本,基于该调度任务脚本中所有的执行脚本,确定待调度的若干执行脚本;基于调度任务脚本中的若干执行层级的名称和预设层级命名规则,确定该若干执行层级的父子关系;基于该父子关系和调度任务,确定最上层层级至最下层层级的步骤执行链,该步骤执行链为若干执行层级中步骤层级的执行顺序。其中,预设命名规则可以根据实际需要进行设定,例如,子任务层级的名称可通过childJob+下划线+数字的方式命名,数字相同且属于同一层级则可以并行执行。例如,childJob_1和childJob_2是按顺序执行的,childJob_1和childJob_1是并行执行的。步骤执行链用于指示调度任务中所有步骤执行的前后顺序。
其中,若干执行层级存在父子关系,其用于对调度任务的步骤进行划分,该若干执行层级至少包括步骤层级,该步骤层级为最底层的执行层级,即步骤层级为其他所有执行层级的子层级。该若干执行层级的层数可以根据实际需要进行设定,例如若干执行层级包括任务层级、子任务层级和步骤层级。
其中,若干执行层级的父子关系表示若干执行层级存在包含关系,例如,一个任务层级包括若干子任务层级,一个子任务层级包括若干步骤层级。相应的,无论是任务层级上的执行顺序或子任务层级上的执行顺序,最后均可以通过步骤层级的执行顺序来表示。
在一实施例中,所述若干执行层级包括任务层级、子任务层级和步骤层级,所述子任务层级为所述任务层级的子层级,所述步骤层级为所述子任务层级的子层级,上述步骤A11中,基于所述调度任务确定所述若干执行层级中步骤层级的执行顺序,其中,所述步骤层级处于所述若干执行层级的最底层,包括:
步骤A111,基于所述调度任务确定所述任务层级的第一执行顺序;
在本实施例中,基于调度任务确定任务层级的第一执行顺序。具体的,基于调度任务对应的调度任务脚本,确定调度任务脚本中所有任务层级,并基于所有任务层级在调度任务脚本中的位置确定任务层级的第一执行顺序。
其中,任务层级可以包括一个或多个,在任务层级为一个时,即调度任务中只涉及一个任务时,该第一执行顺序只包括一个任务层级。
步骤A112,基于所述调度任务和所述第一执行顺序确定所述子任务层级的第二执行顺序;
在本实施例中,基于调度任务和第一执行顺序确定子任务层级的第二执行顺序。具体的,基于第一执行顺序确定任务层级的数量和执行顺序,然后,基于调度任务对应的调度任务脚本,依次确定各个任务层级的所有子任务层级,并基于所有子任务层级在调度任务脚本中的位置确定子任务层级的第二执行顺序。
其中,每个任务层级可以包括一个或多个子任务层级。在任务层级为一个时,子任务层级的第二执行顺序即为一个任务层级下的子任务层级的执行顺序,具体的,参照图4,图4为本申请实施例涉及的子任务执行顺序示意图,任务层级包括一个任务1,在任务1中包括子任务1、子任务2、子任务3、子任务4,其中,子任务层级的执行顺序为子任务1、子任务2和子任务3并行、子任务4,该图4只是为了举例说明,并不对本实施例进行限定。
步骤A113,基于所述调度任务和所述第二执行顺序确定所述步骤层级的第三执行顺序。
在本实施例中,基于调度任务和第二执行顺序确定步骤层级的第三执行顺序。具体的,基于第二执行顺序确定子任务层级的数量和执行顺序,然后,基于调度任务对应的调度任务脚本,依次确定各个子任务层级的所有步骤层级,并基于所有步骤层级在调度任务脚本中的位置确定步骤层级的第三执行顺序。
其中,每个子任务层级可以包括一个或多个步骤层级。在任务层级为一个时,子任务层级的第二执行顺序即为一个任务层级下的子任务层级的执行顺序,步骤层级的第三执行顺序即为所有子任务层级下的所有步骤层级的执行顺序,具体的,参照图5,图5为本申请实施例涉及的步骤执行顺序示意图,任务层级包括一个任务1,在任务1中包括子任务1、子任务2、子任务3、子任务4,子任务1包括子任务1步骤1、子任务1步骤2、子任务1步骤3、子任务1步骤4,子任务2包括子任务2步骤1、子任务2步骤2、子任务2步骤3、子任务2步骤4,子任务3包括子任务3步骤1、子任务3步骤2、子任务3步骤3、子任务3步骤4,子任务4包括子任务4步骤1,其中,步骤层级的执行顺序为子任务1步骤1、子任务1步骤2和子任务1步骤3并行、子任务1步骤4,然后,子任务2步骤1、子任务2步骤2和子任务2步骤3并行、子任务2步骤4与子任务3步骤1、子任务3步骤2和子任务3步骤3并行、子任务3步骤4并行,最后,子任务4步骤1。该图5只是为了举例说明,并不对本实施例进行限定。
步骤A12,基于所述执行顺序,确定所述若干执行脚本的调度顺序。
在本实施例中,基于步骤层级的执行顺序,确定若干执行脚本的调度顺序。其中,一个步骤层级包括一个执行脚本,即步骤层级的执行顺序与若干执行脚本的调度顺序相同。具体的,基于步骤层级的执行顺序,确定所有步骤层级中若干执行脚本的调度顺序。
本实施例中,首先获取进行脚本调度的调度任务,其中,调度任务只需用户提供需求信息或者只需用户编写简单的脚本得到,从而降低了脚本开发难度,以使用户可快速触发调度任务,进而提高脚本调度效率,并基于调度任务确定待调度的若干执行脚本,基于调度任务确定若干执行层级中步骤层级的执行顺序,其中,步骤层级处于若干执行层级的最底层,基于执行顺序,确定若干执行脚本的调度顺序,以对调度任务的步骤进行划分,其中,每个步骤中均包括一个执行脚本,从而实现对若干执行脚本的划分,以使若干执行脚本的调度顺序更加明确,进而确保脚本调度的准确性,并进一步提高脚本调度效率,最后,基于调度顺序,从多个分布式节点中调度若干执行脚本,需要说明的是,若干执行脚本部署于多个分布式节点中,相比基于单机执行将执行脚本合并或者重新开发,本实施例无需进行复杂的合并开发或重新开发的流程,进而降低开发成本和进行脚本调度的操作难度,以使用户无需接触复杂的开发流程,且用户无需进行复杂的操作,从而进一步提高脚本调度效率。综上所述,本实施例可提高脚本调度效率。
进一步地,基于上述第一实施例,提出本申请脚本调度方法的第三实施例。
在本实施例中,在上述步骤S10中,获取进行脚本调度的调度任务之后,该脚本调度方法还包括:
步骤A30,基于所述调度任务确定所述若干执行脚本对应的远程访问信息集,其中,所述远程访问信息集中一远程访问信息包括网际互连协议IP地址和端口号,所述若干执行脚本中一执行脚本对应所述远程访问信息集中一远程访问信息;
步骤A40,对所述远程访问信息集分别进行网络连通性检测,得到若干连通性检测结果;
在本实施例中,基于调度任务确定若干执行脚本对应的远程访问信息集,其中,远程访问信息集中一远程访问信息包括IP地址和端口号,该若干执行脚本中一执行脚本对应远程访问信息集中一远程访问信息,然后,对远程访问信息集分别进行网络连通性检测,得到若干连通性检测结果。具体的,获取调度任务对应的调度任务脚本中所有执行脚本对应的远程访问信息集,然后,基于该远程访问信息集分别进行网络连通性检测。也就是说,对调度任务脚本中出现的ip地址和端口遍历执行网络连通性检测,如果任何一台服务器无返回或者超时,则证明网络连通性存在异常。
其中,远程访问信息集包括若干远程访问信息,该远程访问信息集的信息数量与若干执行脚本的数量一致,即一个执行脚本对应一个远程访问信息。需要说明的是,不同执行脚本对应的远程访问信息可以相同也可以不相同,或者不同执行脚本的IP地址相同端口号不同。IP地址用于指示访问的目标节点(目标服务器)。端口号为整数,其用于标记端口,而目标节点在不同的端口提供不同的服务,即一个目标节点可以提供多种服务,多种服务通过不同端口进行提供。
其中,连通性检测结果包括正常和异常,若基于远程访问信息访问不到相应服务器,即服务器无返回或者超时,则连通性检测结果为异常;若基于远程访问信息可访问相应服务器,即服务器有返回,则连通性检测结果为正常。
在一实施例中,网络连通性检测通过Telnet进行,具体的,对调度任务脚本中出现的ip地址和端口遍历执行网络连通性检测,如果任何一台服务器无返回或者超时,则证明网络连通性存在异常。
步骤A50,若所述若干连通性检测结果中一连通性检测结果存在异常,则上报异常信息并停止所述调度任务。
在本实施例中,若若干连通性检测结果中一连通性检测结果存在异常,则上报异常信息并停止调度任务。其中,异常信息的内容可以根据实际情况进行设定,例如服务器访问权限有异常调度任务无法执行等;该异常信息还可以包括异常发生的位置,以供用户基于该异常信息修改对应的调度任务,以使修改后的调度任务进行网络连通性检测的结果为正常。
在另一实施例中,上述步骤A40之后,该脚本调度方法还包括:
若所述若干连通性检测结果均正常,则正常提交并执行所述调度任务,即执行后续基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序的步骤。
进一步地,在所述若干连通性检测结果均正常的步骤之后,该脚本调度方法还包括:
基于所述调度任务确定若干执行脚本对应的远程登录信息集,其中,所述远程登录信息集中一远程登录信息包括登录用户;对所述远程登录信息集分别进行登录权限检测,得到若干登录权限检测结果;若所述若干登录权限检测结果中一登录权限检测结果存在异常,则上报异常信息并停止所述调度任务;若所述若干登录权限检测结果均正常,则正常提交并执行所述调度任务,即执行后续基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序的步骤。
进一步地,在所述若干登录权限检测结果均正常的步骤之后,该脚本调度方法还包括:
基于所述调度任务确定若干执行脚本对应的执行脚本路径集,其中,所述执行脚本路径集中一执行脚本路径为执行脚本的文件存储路径;对所述执行脚本路径集分别进行执行权限检测,得到若干执行权限检测结果;若所述若干执行权限检测结果中一执行权限检测结果为无执行权限,则上报异常信息并停止所述调度任务;若所述若干执行权限检测结果均正常,则正常提交并执行所述调度任务,即执行后续基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序的步骤。
在本实施例中,在上述步骤S10中,获取进行脚本调度的调度任务之后,该脚本调度方法还包括:
步骤A60,基于所述调度任务确定所述若干执行脚本对应的远程登录信息集,其中,所述远程登录信息集中一远程登录信息包括登录用户,所述若干执行脚本中一执行脚本对应所述远程登录信息集中一远程登录信息;
步骤A70,对所述远程登录信息集分别进行登录权限检测,得到若干登录权限检测结果;
在本实施例中,基于调度任务确定若干执行脚本对应的远程登录信息集,其中,父子关系远程登录信息集中一远程登录信息包括登录用户,父子关系若干执行脚本中一执行脚本对应父子关系远程登录信息集中一远程登录信息,然后,对远程登录信息集分别进行登录权限检测,得到若干登录权限检测结果。具体的,获取调度任务对应的调度任务脚本中所有执行脚本对应的远程登录信息集,然后,基于该远程登录信息集分别进行登录权限检测。也就是说,使用若干执行脚本对应的的登录用户分别登录至对应的服务器,如果登录失败或者超时,则证明权限不足,直接上报用户任务无法执行。
其中,远程登录信息集包括若干远程登录信息,该远程登录信息集的信息数量与若干执行脚本的数量一致,即一个执行脚本对应一个远程登录信息。需要说明的是,不同执行脚本对应的远程登录信息可以相同也可以不相同。登录用户可以包括用户名和用户密码,该登录用户可以为root用户(管理员用户)或者普通用户,该普通用户包括系统用户和自定义用户。该系统用户是为了满足自身系统管理所内建的账号;该自定义用户由root用户创建,其用于为用户提供登录服务器系统的账号。
其中,登录权限检测结果包括正常和异常,若基于远程登录信息登录不到相应服务器,即登录失败或登录超时,则登录权限检测结果为异常;若基于远程登录信息可登录相应服务器,即登录成功,则登录权限检测结果为正常。
在一实施例中,登录权限检测通过SSH进行,具体的,使用若干执行脚本对应的的登录用户分别SSH登录至对应的服务器,如果SSH登录失败或者超时,则证明权限不足,直接上报用户任务无法执行。
步骤A80,若所述若干登录权限检测结果中一登录权限检测结果存在异常,则上报异常信息并停止所述调度任务。
在本实施例中,若若干登录权限检测结果中一登录权限检测结果存在异常,则上报异常信息并停止调度任务。其中,异常信息的内容可以根据实际情况进行设定,例如服务器登录权限有异常调度任务无法执行等;该异常信息还可以包括异常发生的位置,以供用户基于该异常信息修改对应的调度任务,以使修改后的调度任务进行登录权限检测的结果为正常。
在另一实施例中,上述步骤A70之后,该脚本调度方法还包括:
若所述若干登录权限检测结果均正常,则正常提交并执行所述调度任务,即执行后续基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序的步骤。
进一步地,在所述若干登录权限检测结果均正常的步骤之后,该脚本调度方法还包括:
基于所述调度任务确定若干执行脚本对应的执行脚本路径集,其中,所述执行脚本路径集中一执行脚本路径为执行脚本的文件存储路径;对所述执行脚本路径集分别进行执行权限检测,得到若干执行权限检测结果;若所述若干执行权限检测结果中一执行权限检测结果为无执行权限,则上报异常信息并停止所述调度任务;若所述若干执行权限检测结果均正常,则正常提交并执行所述调度任务,即执行后续基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序的步骤。
在本实施例中,在上述步骤S10中,获取进行脚本调度的调度任务之后,该脚本调度方法还包括:
步骤A90,基于所述调度任务确定所述若干执行脚本对应的执行脚本路径集,其中,所述执行脚本路径集中一执行脚本路径为执行脚本的文件存储路径,所述若干执行脚本中一执行脚本对应所述执行脚本路径集中一执行脚本路径;
步骤A100,对所述执行脚本路径集分别进行执行权限检测,得到若干执行权限检测结果;
在本实施例中,基于父子关系调度任务确定父子关系若干执行脚本对应的执行脚本路径集,其中,父子关系执行脚本路径集中一执行脚本路径为执行脚本的文件存储路径,父子关系若干执行脚本中一执行脚本对应父子关系执行脚本路径集中一执行脚本路径,然后,对执行脚本路径集分别进行执行权限检测,得到若干执行权限检测结果。具体的,获取调度任务对应的调度任务脚本中所有执行脚本对应的执行脚本路径集,然后,基于该执行脚本路径集分别进行执行权限检测。也就是说,对执行脚本路径执行文件权限查询指令,判断用户对该文件是否存在执行权限,如果对服务器上的执行脚本无可执行权限,则证明权限不足,直接上报用户任务无法执行。
其中,执行脚本路径集包括若干执行脚本路径,该执行脚本路径集的数量与若干执行脚本的数量一致,即一个执行脚本对应一个执行脚本路径。需要说明的是,执行脚本路径为执行脚本在一分布式节点中的存储路径,其用于指示执行脚本的调用位置。该执行脚本路径可以包括目录路径和执行脚本的名称。例如,在一分布式节点的系统为Linux系统,执行脚本路径为/opt/test.sh。
其中,执行权限检测结果包括正常(有执行权限)和异常(无执行权限),若基于执行脚本路径查询的执行脚本不可执行,即该执行脚本的不具备执行权限,则执行权限检测结果为异常(无执行权限);若基于执行脚本路径查询的执行脚本可执行,即该执行脚本的具备执行权限,则执行权限检测结果为正常(有执行权限)。
在一实施例中,执行权限检测可以通过文件权限查询指令进行,例如,在Linux系统中,对执行脚本路径执行ls-al指令,判断用户对该文件是否存在执行权限,如果对服务器上的执行脚本无可执行权限,则证明权限不足,直接上报用户任务无法执行。
步骤A110,若所述若干执行权限检测结果中一执行权限检测结果为无执行权限,则上报异常信息并停止所述调度任务。
在本实施例中,若若干执行权限检测结果中一执行权限检测结果为无执行权限,则上报异常信息并停止调度任务。其中,异常信息的内容可以根据实际情况进行设定,例如执行权限有异常调度任务无法执行等;该异常信息还可以包括异常发生的位置,以供用户基于该异常信息修改对应的调度任务,以使修改后的调度任务进行执行权限检测的结果为正常。
在另一实施例中,上述步骤A100之后,该脚本调度方法还包括:
若所述若干执行权限检测结果均正常(有执行权限),则正常提交并执行所述调度任务,即执行后续基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序的步骤。
本实施例中,在获取进行脚本调度的调度任务之后,对调度任务中若干执行脚本进行脚本权限预检测,该脚本权限包括服务器访问权限和/或服务器登录权限和/或脚本执行权限,以确保调度任务预检测正常后,再执行该调度任务,从而确保脚本调度的正常执行,防止执行过程中出现异常时造成脚本调度效率低下,从而进一步提高脚本调度效率。
进一步地,基于上述第一实施例,提出本申请脚本调度方法的第三实施例。
在本实施例中,在上述步骤S20之后,该脚本调度方法还包括:
步骤A120,基于脚本调度结果,执行所述若干执行脚本中的当前执行脚本,并检测所述当前执行脚本对应步骤层级的执行状态,其中,所述脚本调度结果包括所述若干执行脚本的执行顺序;
在本实施例中,基于脚本调度结果,执行若干执行脚本中的当前执行脚本,并检测当前执行脚本对应步骤层级的执行状态,其中,脚本调度结果包括若干执行脚本的执行顺序。具体的,基于脚本调度结果,其中,该脚本调度结果包括执行脚本的调度顺序,依次执行若干执行脚本,而在执行一执行脚本时,即执行若干执行脚本中的当前执行脚本时,检测当前执行脚本对应步骤层级的执行状态,也就是说,在调度任务执行当前执行脚本对应的步骤时,检测该步骤的执行状态。其中,执行状态包括正常状态和异常状态。
在上述步骤A120之后,该脚本调度方法还包括:
获取所述当前执行脚本对应步骤层级的执行信息,并将所述执行信息存储在数据库中,以便后续进行执行状态检测等相关处理。其中,执行信息可以包括以下至少一种:若干执行层级的名称(例如任务名称、子任务名称和步骤名称)、开始时间、结束时间和执行状态等。
步骤A130,若所述执行状态为异常状态,则基于所述调度任务确定所述当前执行脚本的事务类型;
步骤A140,基于所述事务类型确定对应的若干回滚脚本,并调度和执行所述若干回滚脚本。
在本实施例中,若执行状态为异常状态,则基于调度任务确定当前执行脚本的事务类型,然后,基于该事务类型确定对应的若干回滚脚本,并调度和执行若干回滚脚本。具体的,若执行状态为异常状态,则基于调度任务确定当前执行脚本对应的步骤层级,基于该步骤层级确定对应的事务类型,基于该事务类型确定回滚范围,基于该回滚范围确定对应的若干回滚脚本,并调度和执行若干回滚脚本,以完成一次分布式事务。
其中,事务类型可以根据调度任务包括的若干执行层级进行设定,例如,对于包括任务层级、子任务层级和步骤层级的调度任务来说,事务类型包括回滚任务、回滚子任务和回滚步骤。需要说明的是,若事务类型为回滚步骤,则对应的若干回滚脚本包括该当前执行脚本对应步骤的回滚脚本,即若干回滚脚本只包括一个回滚脚本;若事务类型为回滚子任务,则对应的若干回滚脚本包括该当前执行脚本对应子任务下已经执行的步骤对应的回滚脚本;若事务类型为回滚任务,则对应的若干回滚脚本包括当前所有已经执行的步骤对应的回滚脚本。
其中,回滚脚本与同一步骤层级下的执行脚本一一对应,回滚脚本可基于执行脚本相同的参数将执行脚本修改的数据进行回滚,该回滚操作包括但不限于删除生成的数据、通过备份数据进行回滚等多种方式。具体的,该回滚脚本可以根据实际需要自行设定。
在一实施例中,在上述步骤A120之后,该脚本调度方法还包括:
若执行状态为正常状态,则记录正常状态,并执行下一步骤,即执行下一执行脚本。
进一步地,在所述执行状态为异常状态之后,该脚本调度方法还包括:
基于调度任务确定所述当前执行脚本对应的是否允许异常的属性,若允许异常,则记录异常状态,并执行下一步骤,即执行下一执行脚本;若不允许异常,则基于所述调度任务确定所述当前执行脚本的事务类型;基于所述事务类型确定对应的若干回滚脚本,并调度和执行所述若干回滚脚本。
在一实施例中,脚本执行是有顺序性的,若上游脚本执行回滚之后,下游脚本就不继续执行了。
在另一实施例中,在上述步骤A140之后,该脚本调度方法还包括:
返回基于脚本调度结果,执行所述若干执行脚本中的当前执行脚本,并检测所述当前执行脚本对应步骤层级的执行状态的步骤,直至所述若干执行脚本执行完毕。
本实施例中,检测当前执行脚本对应步骤层级的执行状态,以在该执行状态为异常状态时执行对应的回滚脚本,从而基于分布式事务的管理,可确保调度任务执行的高可用,进而确保脚本调度的正常执行。
本申请还提供一种脚本调度装置。
在本实施例中,所述脚本调度装置包括:
获取模块,用于获取进行脚本调度的调度任务,并基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序;
调度模块,用于基于所述调度顺序,从分布式系统中调度所述若干执行脚本,其中,所述若干执行脚本部署于所述分布式系统的多个分布式节点。
其中,上述脚本调度装置的各虚拟功能模块存储于图1所示脚本调度设备的存储器1004中,用于实现脚本调度程序的所有功能;各模块被处理器1001执行时,可实现脚本调度功能。
进一步地,所述调度任务包括若干执行层级,所述获取模块包括:
基于所述调度任务确定所述若干执行层级中步骤层级的执行顺序,其中,所述步骤层级处于所述若干执行层级的最底层;
调度顺序确定单元,用于基于所述执行顺序,确定所述若干执行脚本的调度顺序。
进一步地,所述若干执行层级包括任务层级、子任务层级和步骤层级,所述子任务层级为所述任务层级的子层级,所述步骤层级为所述子任务层级的子层级,所述执行顺序确定单元还用于:
基于所述调度任务确定所述任务层级的第一执行顺序;
基于所述调度任务和所述第一执行顺序确定所述子任务层级的第二执行顺序;
基于所述调度任务和所述第二执行顺序确定所述步骤层级的第三执行顺序。
进一步地,所述脚本调度装置还包括:
第一信息确定模块,用于基于所述调度任务确定所述若干执行脚本对应的远程访问信息集,其中,所述远程访问信息集中一远程访问信息包括网际互连协议IP地址和端口号,所述若干执行脚本中一执行脚本对应所述远程访问信息集中一远程访问信息;
网络检测模块,用于对所述远程访问信息集分别进行网络连通性检测,得到若干连通性检测结果;
任务停止模块,用于若所述若干连通性检测结果中一连通性检测结果存在异常,则上报异常信息并停止所述调度任务。
进一步地,所述脚本调度装置还包括:
第二信息确定模块,用于基于所述调度任务确定所述若干执行脚本对应的远程登录信息集,其中,所述远程登录信息集中一远程登录信息包括登录用户,所述若干执行脚本中一执行脚本对应所述远程登录信息集中一远程登录信息;
登录检测模块,用于对所述远程登录信息集分别进行登录权限检测,得到若干登录权限检测结果;
任务停止模块,还用于若所述若干登录权限检测结果中一登录权限检测结果存在异常,则上报异常信息并停止所述调度任务。
进一步地,所述脚本调度装置还包括:
路径确定模块,用于基于所述调度任务确定所述若干执行脚本对应的执行脚本路径集,其中,所述执行脚本路径集中一执行脚本路径为执行脚本的文件存储路径,所述若干执行脚本中一执行脚本对应所述执行脚本路径集中一执行脚本路径;
权限检测模块,用于对所述执行脚本路径集分别进行执行权限检测,得到若干执行权限检测结果;
任务停止模块,还用于若所述若干执行权限检测结果中一执行权限检测结果为无执行权限,则上报异常信息并停止所述调度任务。
进一步地,所述脚本调度装置还包括:
状态检测模块,用于基于脚本调度结果,执行所述若干执行脚本中的当前执行脚本,并检测所述当前执行脚本对应步骤层级的执行状态,其中,所述脚本调度结果包括所述若干执行脚本的执行顺序;
类型确定模块,用于若所述执行状态为异常状态,则基于所述调度任务确定所述当前执行脚本的事务类型;
回滚执行模块,用于基于所述事务类型确定对应的若干回滚脚本,并调度和执行所述若干回滚脚本。
其中,上述脚本调度装置中各个模块的功能实现与上述脚本调度方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质上存储有脚本调度程序,所述脚本调度程序被处理器执行时实现如以上任一项实施例所述的脚本调度方法的步骤。
本申请计算机可读存储介质的具体实施例与上述脚本调度方法各实施例基本相同,在此不作赘述。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序产品被处理器执行时实现如以上任一项实施例所述的脚本调度方法的步骤。
本申请计算机程序产品的具体实施例与上述脚本调度方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种脚本调度方法,其特征在于,所述脚本调度方法包括:
获取进行脚本调度的调度任务,并基于所述调度任务确定待调度的若干执行脚本及所述若干执行脚本的调度顺序;
基于所述调度顺序,从分布式系统中调度所述若干执行脚本,其中,所述若干执行脚本部署于所述分布式系统的多个分布式节点。
2.如权利要求1所述的脚本调度方法,其特征在于,所述调度任务包括若干执行层级,所述基于所述调度任务确定所述若干执行脚本的调度顺序的步骤包括:
基于所述调度任务确定所述若干执行层级中步骤层级的执行顺序,其中,所述步骤层级处于所述若干执行层级的最底层;
基于所述执行顺序,确定所述若干执行脚本的调度顺序。
3.如权利要求2所述的脚本调度方法,其特征在于,所述若干执行层级包括任务层级、子任务层级和步骤层级,所述子任务层级为所述任务层级的子层级,所述步骤层级为所述子任务层级的子层级,所述基于所述调度任务确定所述若干执行层级中步骤层级的执行顺序的步骤包括:
基于所述调度任务确定所述任务层级的第一执行顺序;
基于所述调度任务和所述第一执行顺序确定所述子任务层级的第二执行顺序;
基于所述调度任务和所述第二执行顺序确定所述步骤层级的第三执行顺序。
4.如权利要求1所述的脚本调度方法,其特征在于,所述获取进行脚本调度的调度任务的步骤之后,还包括:
基于所述调度任务确定所述若干执行脚本对应的远程访问信息集,其中,所述远程访问信息集中一远程访问信息包括网际互连协议IP地址和端口号,所述若干执行脚本中一执行脚本对应所述远程访问信息集中一远程访问信息;
对所述远程访问信息集分别进行网络连通性检测,得到若干连通性检测结果;
若所述若干连通性检测结果中一连通性检测结果存在异常,则上报异常信息并停止所述调度任务。
5.如权利要求1所述的脚本调度方法,其特征在于,所述获取进行脚本调度的调度任务的步骤之后,还包括:
基于所述调度任务确定所述若干执行脚本对应的远程登录信息集,其中,所述远程登录信息集中一远程登录信息包括登录用户,所述若干执行脚本中一执行脚本对应所述远程登录信息集中一远程登录信息;
对所述远程登录信息集分别进行登录权限检测,得到若干登录权限检测结果;
若所述若干登录权限检测结果中一登录权限检测结果存在异常,则上报异常信息并停止所述调度任务。
6.如权利要求1所述的脚本调度方法,其特征在于,所述获取进行脚本调度的调度任务的步骤之后,还包括:
基于所述调度任务确定所述若干执行脚本对应的执行脚本路径集,其中,所述执行脚本路径集中一执行脚本路径为执行脚本的文件存储路径,所述若干执行脚本中一执行脚本对应所述执行脚本路径集中一执行脚本路径;
对所述执行脚本路径集分别进行执行权限检测,得到若干执行权限检测结果;
若所述若干执行权限检测结果中一执行权限检测结果为无执行权限,则上报异常信息并停止所述调度任务。
7.如权利要求1至6中任一项所述的脚本调度方法,其特征在于,所述基于所述调度顺序,从多个分布式节点中调度所述若干执行脚本的步骤之后,还包括:
基于脚本调度结果,执行所述若干执行脚本中的当前执行脚本,并检测所述当前执行脚本对应步骤层级的执行状态,其中,所述脚本调度结果包括所述若干执行脚本的执行顺序;
若所述执行状态为异常状态,则基于所述调度任务确定所述当前执行脚本的事务类型;
基于所述事务类型确定对应的若干回滚脚本,并调度和执行所述若干回滚脚本。
8.一种脚本调度设备,其特征在于,所述脚本调度设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的脚本调度程序,所述脚本调度程序被所述处理器执行时实现如权利要求1至7中任一项所述的脚本调度方法的步骤。
9.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有脚本调度程序,所述脚本调度程序被处理器执行时实现如权利要求1至7中任一项所述的脚本调度方法的步骤。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的脚本调度方法的步骤。
CN202110689582.9A 2021-06-21 2021-06-21 脚本调度方法、设备、存储介质及计算机程序产品 Pending CN113296916A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110689582.9A CN113296916A (zh) 2021-06-21 2021-06-21 脚本调度方法、设备、存储介质及计算机程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110689582.9A CN113296916A (zh) 2021-06-21 2021-06-21 脚本调度方法、设备、存储介质及计算机程序产品

Publications (1)

Publication Number Publication Date
CN113296916A true CN113296916A (zh) 2021-08-24

Family

ID=77329138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110689582.9A Pending CN113296916A (zh) 2021-06-21 2021-06-21 脚本调度方法、设备、存储介质及计算机程序产品

Country Status (1)

Country Link
CN (1) CN113296916A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113900834A (zh) * 2021-09-24 2022-01-07 天津同阳科技发展有限公司 基于物联网技术的数据处理方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113900834A (zh) * 2021-09-24 2022-01-07 天津同阳科技发展有限公司 基于物联网技术的数据处理方法、装置、设备及存储介质
CN113900834B (zh) * 2021-09-24 2023-02-14 天津同阳科技发展有限公司 基于物联网技术的数据处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11216256B2 (en) Determining based on static compiler analysis that execution of compiler code would result in unacceptable program behavior
US20210352099A1 (en) System for automatically discovering, enriching and remediating entities interacting in a computer network
US9191380B2 (en) System and method for managing information technology models in an intelligent workload management system
US9037722B2 (en) Resolving information in a multitenant database environment
US11418532B1 (en) Automated threat modeling using machine-readable threat models
AU2021206497B2 (en) Method and apparatus for authority control, computer device and storage medium
US20220156063A1 (en) Representing Source Code as Implicit Configuration Items
US9804952B1 (en) Application debugging in a restricted container environment
US11635752B2 (en) Detection and correction of robotic process automation failures
EP3468144B1 (en) Displaying errors of cloud service components
JP2016099857A (ja) 不正プログラム対策システムおよび不正プログラム対策方法
US10176011B2 (en) Automatically generating and executing a service operation implementation for executing a task
Schmieders et al. Runtime model-based privacy checks of big data cloud services
US11635953B2 (en) Proactive notifications for robotic process automation
CN113296916A (zh) 脚本调度方法、设备、存储介质及计算机程序产品
US8392469B2 (en) Model based distributed application management
US20120265879A1 (en) Managing servicability of cloud computing resources
US11748686B1 (en) Automated onboarding service
US10572805B2 (en) Service modeling and execution
US11388239B2 (en) Previewing impacted entities in automated device definitions
Joukov et al. Built-to-order service engineering for enterprise IT discovery
Dogbe et al. A combined approach to prevent SQL Injection Attacks
CN104298763A (zh) 一种基于web的结构化数据库系统对外访问方法
Ochei et al. Evaluating degrees of tenant isolation in multitenancy patterns: A case study of cloud-hosted Version Control System (VCS)
US11954469B2 (en) Bases for pattern-based cloud computing

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