CN110704210A - 脚本任务调用方法、系统、介质及装置 - Google Patents
脚本任务调用方法、系统、介质及装置 Download PDFInfo
- Publication number
- CN110704210A CN110704210A CN201910893513.2A CN201910893513A CN110704210A CN 110704210 A CN110704210 A CN 110704210A CN 201910893513 A CN201910893513 A CN 201910893513A CN 110704210 A CN110704210 A CN 110704210A
- Authority
- CN
- China
- Prior art keywords
- script
- task
- script task
- server
- executing
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及脚本任务技术领域,特别是涉及一种脚本任务调用方法、系统、介质及装置。
背景技术
在在企业软件开发过程中,每个阶段都会产生脚本任务,尤其当软件开发快速迭代时,脚本任务的产生速度会大幅度增长,与此同时,对应新功能开发而产生的测试代码、脚本也会大量产生。对于测试阶段来说,注重测试代码的可复用性,对脚本的调度有一定要求,且需支持多种脚本语言的调用,综上所述,产生了对于脚本任务如何执行、处理的需求。
因此,希望能够解决如何基于脚本任务的请求参数信息和数量合理选取执行脚本任务的指定服务器的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种脚本任务调用方法、系统、介质及装置,用于解决现有技术中如何基于脚本任务的请求参数信息和数量合理选取执行脚本任务的指定服务器的问题。
为实现上述目的及其他相关目的,本发明提供一种脚本任务调用方法,包括以下步骤:接收脚本任务,并获取所述脚本任务的请求参数信息;基于所述请求参数信息和所述脚本任务的数量选取执行每个脚本任务对应的指定服务器;当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务;当所述指定服务器是集群服务器的某一指定服务器时,将所述某一指定服务器的身份信息封装至对应的脚本任务,并将所述脚本任务打包并发送至所述某一指定服务器;接收并同步所述某一指定服务器发送的所述脚本任务执行状态。
于本发明的一实施例中,还包括进行所述脚本任务是否为合法请求的判断,当所述脚本任务为合法请求时,再执行接收脚本任务,并获取所述脚本任务的请求参数信息的步骤。
于本发明的一实施例中,所述请求参数信息包括:发起对象的签名、执行体类型、时效类型、执行时间。
于本发明的一实施例中,所述时效类型包括:周期任务类型、立即任务类型和定期任务类型
于本发明的一实施例中,还包括以下步骤:接收脚本任务终止请求,获取所述脚本任务终止请求所对应的脚本任务的指定服务器的认证信息;基于所述认证信息发送所述脚本任务终止请求至所述指定服务器,以终止所述脚本任务。
为实现上述目的,本发明还提供一种脚本任务调用系统,包括:参数组装模块、配置模块、任务调度模块和高可用模块;所述参数组装模块用于接收脚本任务,并获取所述脚本任务的请求参数信息;所述配置模块用于基于所述请求参数信息和所述脚本任务的数量选取执行每个脚本任务对应的指定服务器;所述任务调度模块用于当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务;所述任务调度模块还用于当所述指定服务器是集群服务器的某一指定服务器时,将所述某一指定服务器的身份信息封装至对应的脚本任务,并将所述脚本任务打包并发送至所述某一指定服务器;接收并同步所述某一指定服务器发送的所述脚本任务执行状态。
于本发明的一实施例中,所述请求参数信息包括:发起对象的签名、执行体类型、时效类型、执行时间。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一上述脚本任务调用方法。
为实现上述目的,本发明还提供一种脚本任务调用装置,包括:处理器和存储器;所述存储器用于存储计算机程序;所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述脚本任务调用装置执行任一上述的脚本任务调用方法。
最后,本发明还提供一种脚本任务调用系统,包括:包括上述的脚本任务调用装置和服务器;所述服务器用于执行所述脚本任务。
如上所述,本发明的一种脚本任务调用方法、系统、介质及装置,具有以下有益效果:用于基于脚本任务的类别和数量合理选取执行脚本任务的指定服务器,能够调度执行脚本任务,能够在相对资源较充裕的环境中执行脚本任务,实现服务器资源的合理利用。
附图说明
图1a显示为本发明的脚本任务调用方法于一实施例中的流程图;
图1b显示为本发明的脚本任务调用方法的脚本任务终止于一实施例中的流程图;
图1c显示为本发明的脚本任务调用方法于又一实施例中的流程图;
图2a显示为本发明的脚本任务调用系统于一实施例中的结构示意图;
图2b显示为本发明的脚本任务调用系统于再一实施例中的流程图;
图2c显示为本发明的脚本任务调用系统于又一实施例中的流程图;
图3显示为本发明的脚本任务调用装置于一实施例中的结构示意图;
图4显示为本发明的脚本任务调用系统于还一实施例中的结构示意图。
元件标号说明
21 参数组装模块
22 配置模块
23 任务调度模块
31 处理器
32 存储器
41 脚本任务调用装置
42 服务器
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,故图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的脚本任务调用方法、系统、介质及装置,用于基于脚本任务的类别和数量合理选取执行脚本任务的指定服务器,能够调度执行脚本任务,能够在相对资源较充裕的环境中执行脚本任务,实现服务器资源的合理利用。
如图1a所示,于一实施例中,本发明的脚本任务调用方法,包括以下步骤:
步骤S11、接收脚本任务,并获取所述脚本任务的请求参数信息。
具体地,所述请求参数信息包括:发起对象的签名、执行体类型、时效类型、执行时间。例如:某个脚本任务的请求参数信息如下所示:
{
“userName“:”testUser“,
“executionType“:”python“,
“suiteModel”:{…},
“crontab”:{
“minute”:”35”,
“hour”:”15”,
“day_of_week”:”*”,
“day_of_month”:”*”,
“month_of_year”:”*”
}
即所述请求参数信息包括:发起对象的签名(userName)为“testUser”,发起对象的签名表示所述脚本任务发起对象的签名;执行体类型(executionType)为“python”,表示执行所述脚本任务需要的执行体为python;执行时间(crontab)为具体地执行时间,当没有所述crontab时表示所述脚本任务为立即任务类型,当有所述crontab时表示所述脚本任务为周期任务类型或定期任务类型,即时效类型包括:周期任务类型、立即任务类型和定期任务类型。而在本例中所述脚本任务的执行时间为每天的15:35分执行,并没有年、月、日的限定,表示为周期任务类型。
具体地,还包括进行所述脚本任务是否为合法请求的判断,当所述脚本任务为合法请求时,再执行接收脚本任务,并获取所述脚本任务的请求参数信息的步骤。当接收脚本任务判断所述脚本任务为非法请求时,将所述为非法请求的脚本任务进行拦截。
步骤S12、基于所述请求参数信息和所述脚本任务的数量选取执行每个脚本任务对应的指定服务器。
具体地,所述请求参数信息包括:发起对象的签名、执行体类型、时效类型、执行时间、任务时长。所述时效类型是指:执行所述脚本任务的具体时间和次数,时效类型包括:周期任务类型、立即任务类型和定期任务类型。所述任务时长是指:执行所述脚本任务需要花费的时长,所述执行体类型是指执行所述脚本任务需要的服务器所具备的运行环境语言。例如当所述脚本任务为单个脚本任务:时效类型-立即任务类型、任务时长-几分钟、执行体类型-python,此时,单点服务器为空闲状态,且所述任务类型为单次任务,且所述任务时长较短,因此,选取执行脚本任务的指定服务器为单点服务器。所述单点服务器是指只有一台机器支持运行的服务器。当所述脚本任务为批量的脚本任务:且各自的时效类型-、任务时长、执行体类型,各不相同,如果都由单点服务器执行,会造成任务的堆积,此时,选取执行脚本任务的指定服务器为集群服务器,具体地,将所述批量的脚本任务分别发送至不同的集群服务器,以使所述集群服务器执行脚本任务。所述集群服务器是指将多台服务器连接到一起成为的集群服务器。当选取执行脚本任务的指定服务器为集群服务器时,已经为每一脚本任务和集群服务器中的某一指定服务器建立对应关系。
步骤S131、当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务。
具体地,于一实施例中,当所述指定服务器是单点服务器时,则仅有所述单点服务器,就不需要进行服务器的指定,进行接收脚本任务,并获取所述脚本任务的请求参数信息;进行基于所述请求参数信息和所述脚本任务的数量选取执行脚本任务的指定服务器;进行当所述指定服务器是单点服务器时,基于所述本单点务器执行所述脚本任务,即生产与消费未做剥离,即接收脚本任务和执行脚本任务未做剥离,在一台服务器上即可完成脚本任务的执行。采用Redis作为Broker,Broker可以被看成消息转发器。Broker也负责一些控制和管理操作。同时使用了DB backend作为脚本任务的记录载体,支持主流关系型数据库如Mysql,Oracle等。
步骤S132、当所述指定服务器是集群服务器的某一指定服务器时,将所述某一指定服务器的身份信息封装至对应的脚本任务,并将所述脚本任务打包并发送至所述某一指定服务器;接收并同步所述某一指定服务器发送的所述脚本任务执行状态。
具体地,于一实施例中,当所述指定服务器是集群服务器的某一指定服务器时,进行接收脚本任务,例如所述脚本任务为批量脚本任务,获取所述批量脚本任务的请求参数信息;进行基于所述请求参数信息和所述批量脚本任务的数量选取执行每个脚本任务对应的指定服务器;即为每一个脚本任务都指定对应的集群服务器中的某一指定服务器,进行当所述指定服务器是集群服务器时,将所述批量脚本任务分别发送至集群服务器中的某一指定服务器执行所述脚本任务,所述集群服务器为一定数量的服务器,可由所述一定数量的服务器分别接收所述批量脚本任务,例如:集群服务器中的某一指定服务器接收一个脚本任务,或集群服务器中的某一指定服务器接收预设数量的脚本任务,即生产与消费剥离,即接收脚本任务和执行脚本任务剥离。已经为每一脚本任务和集群服务器中的某一指定服务器建立对应关系。采用Redis作为Broker,Broker可以被看成消息转发器。Broker也负责一些控制和管理操作。同时使用了DB backend作为脚本任务的记录载体,支持主流关系型数据库如Mysql,Oracle等。
具体地,还包括以下步骤:接收脚本任务终止请求,获取所述脚本任务终止请求所对应的脚本任务的指定服务器的认证信息;基于所述认证信息发送所述脚本任务终止请求至所述指定服务器,以终止所述脚本任务。所述认证信息是指所述指定服务器的账号和密码。具体地,如图1b所示,于一实施例中,接收脚本任务终止请求包括:当接收到了脚本任务终止请求(接收终止请求),并从数据库中获取所述脚本任务运行的相关执行属性。所述执行属性包括所述脚本任务的执行状态、运行所述脚本任务的服务器的ip地址。还包括以下判断:当所述脚本任务执行状态为已完成或异常时,则需要完成终止脚本任务的运行动作,若任务执行状态为进行中,则只需返回所述脚本任务的相关信息,并继续命令运行所述脚本任务的服务器执行所述脚本任务。获取所述脚本任务终止请求所对应的脚本任务的指定服务器的认证信息包括:当所述脚本任务执行状态为已完成或异常时,则需要完成终止脚本任务的运行动作,则还需进行以下动作:基于运行所述脚本任务的服务器的ip地址获取运行所述脚本任务的服务器的认证信息,所述认证信息包括但不限于所述服务器的账号和密码或服务器的认证身份密钥。基于所述认证信息发送所述脚本任务终止请求至所述指定服务器,以终止所述脚本任务:即通过SSH协议去链接所述服务器,以使所述服务器停止所述脚本任务的执行。在停止所述脚本任务的执行后,还包括对所述脚本任务的状态进行同步,从而确保所述脚本的状态在系统中不同环节中的一致性。从而完成了脚本任务完整的生命周期闭环,从接收脚本任务->指定脚本任务的服务器->执行脚本任务->结束脚本任务完成了完整的生命周期。在脚本任务的每个生命周期阶段,脚本任务的状态是处于可控状态,系统具备较高的健壮性。
具体地,脚本任务终止包括:
INFO 2019-xx-xx xx:xx:xx,xxx util kill_process 127:>>>>>trying tokill xxxxxx job--->suite xx
INFO 2019-xx-xx xx:xx:xx,xxx util kill_process 141:kill-9 22043
INFO 2019-xx-xx xx:xx:xx,xxx util kill_process 143:[]
INFO 2019-xx-xx xx:xx:xx,xxx destroy 522:suite:xx build xxxxxxxx hasbeen killed...msg from remote['22043\n']
该日志表示suiteid为xx的脚本任务被终止的过程,第二行日志22043为所述脚本任务在集群服务器的某一指定服务器上的pid,第三行[]为集群服务器的某一指定服务器的消息返回,该日志消息为空,表示对于终止该进程此种类型的执行体并未作出所述脚本任务被终止的消息返回,第四行日志是成功消息,suiteid为xx的脚本任务已经被成功终止。
具体地,如图1c所示,于一实施例中,首先所述脚本任务是否为合法请求的判断,当所述脚本任务为合法请求时,再执行接收脚本任务,并获取所述脚本任务的请求参数信息的步骤。接收脚本任务,并获取所述脚本任务的请求参数信息,鉴别所述脚本任务的类型。基于所述请求参数信息和所述脚本任务的数量选取执行脚本任务的指定服务器;具体为获取服务器的状态信息,以为分发脚本任务做准备。发送脚本任务:当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务;当所述指定服务器是集群服务器的某一指定服务器时,将所述集群服务器的某一指定服务器的身份信息封装至所述脚本任务,并将所述脚本任务打包并发送至所述集群服务器的某一指定服务器;在所述集群服务器的某一指定服务器接收所述脚本任务后,所述集群服务器的某一指定服务器执行所述脚本任务,并反馈所述脚本任务的执行状态,最后接收所述集群服务器的某一指定服务器发送的所述脚本任务执行状态,即所述脚本任务的状态更新。
具体地,还包括接收所述脚本任务的执行状态,由于被分发的不同脚本任务会在多台服务器环境中执行,本申请采用任务执行状态同步的方法,会定期的与服务器去同步脚本任务执行的状态,该动作成为状态同步。例如:接受到脚本任务后,脚本任务开始执行,脚本任务的执行日志如下:
[2019-xx-xx xx:xx:xx,xxx:INFO/MainProcess]Received task:hydra_core.tasks.hydra_build_results_sync[1f6f2811-8eff-4bf4-8971-8561e8f0bfd0]
[2019-xx-xx xx:xx:xx,xxx:INFO/MainProcess]Task hydra_core.tasks.hydra_build_results_sync[1f6f2811-8eff-4bf4-8971-8561e8f0bfd0]succeeded in1.600598443299532s:None
上述日志表示脚本任务已被成功接受,即所述脚本任务的状态为已被成功接受。
如图2a所示,于一实施例中,本发明的脚本任务调用系统,包括参数组装模块21、配置模块22和任务调度模块23。
所述参数组装模块21用于接收脚本任务,并获取所述脚本任务的请求参数信息。
所述配置模块22用于基于所述请求参数信息和所述脚本任务的数量选取执行每个脚本任务对应的指定服务器。
所述任务调度模块23当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务。
所述任务调度模块23还用于当所述指定服务器是集群服务器的某一指定服务器时,将所述某一指定服务器的身份信息封装至对应的脚本任务,并将所述脚本任务打包并发送至所述某一指定服务器;接收并同步所述某一指定服务器发送的所述脚本任务执行状态。
具体地,所述请求参数信息包括:发起对象的签名、执行体类型、时效类型、执行时间。例如:某个脚本任务的请求参数信息如下所示:
{
“userName“:”testUser“,
“executionType“:”python“,
“suiteModel”:{…},
“crontab”:{
“minute”:”35”,
“hour”:”15”,
“day_of_week”:”*”,
“day_of_month”:”*”,
“month_of_year”:”*”
}
即所述请求参数信息包括:发起对象的签名(userName)为“testUser”,发起对象的签名表示所述脚本任务发起对象的签名;执行体类型(executionType)为“python”,表示执行所述脚本任务需要的执行体为python;执行时间(crontab)为具体地执行时间,当没有所述crontab时表示所述脚本任务为立即任务类型,当有所述crontab时表示所述脚本任务为周期任务类型或定期任务类型,即时效类型包括:周期任务类型、立即任务类型和定期任务类型。而在本例中所述脚本任务的执行时间为每天的15:35分执行,并没有年、月、日的限定,表示为周期任务类型。
具体地,所述参数组装模块21还用于进行所述脚本任务是否为合法请求的判断,当所述脚本任务为合法请求时,再执行接收脚本任务,并获取所述脚本任务的请求参数信息的步骤。当接收脚本任务判断所述脚本任务为非法请求时,将所述为非法请求的脚本任务进行拦截。
所述配置模块22用于基于所述请求参数信息和所述脚本任务的数量选取执行每个脚本任务对应的指定服务器。
具体地,所述请求参数信息包括:发起对象的签名、执行体类型、时效类型、执行时间、任务时长。所述时效类型是指:执行所述脚本任务的具体时间和次数,时效类型包括:周期任务类型、立即任务类型和定期任务类型。所述任务时长是指:执行所述脚本任务需要花费的时长,所述执行体类型是指执行所述脚本任务需要的服务器所具备的运行环境语言。例如当所述脚本任务为单个脚本任务:时效类型-立即任务类型、任务时长-几分钟、执行体类型-python,此时,单点服务器为空闲状态,且所述任务类型为单次任务,且所述任务时长较短,因此,选取执行脚本任务的指定服务器为单点服务器。所述单点服务器是指只有一台机器支持运行的服务器。当所述脚本任务为批量的脚本任务:且各自的时效类型-、任务时长、执行体类型,各不相同,如果都由单点服务器执行,会造成任务的堆积,此时,选取执行脚本任务的指定服务器为集群服务器,具体地,将所述批量的脚本任务分别发送至不同的集群服务器,以使所述集群服务器执行脚本任务。所述集群服务器是指将多台服务器连接到一起成为的集群服务器。当选取执行脚本任务的指定服务器为集群服务器时,已经为每一脚本任务和集群服务器中的某一指定服务器建立对应关系。
所述任务调度模块23用于当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务。
具体地,如图2b所示,于一实施例中,此时为普通模式,当所述指定服务器是单点服务器时,由参数组装模块21进行接收脚本任务,并获取所述脚本任务的请求参数信息;由配置模块22进行基于所述请求参数信息和所述脚本任务的数量选取执行脚本任务的指定服务器;由任务调度模块23进行当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务,即生产与消费未做剥离,即接收脚本任务和执行脚本任务未做剥离,在一台服务器上即可完成脚本任务的执行。采用Redis作为任务调度模块23的Broker,Broker可以被看成消息转发器。Broker也负责一些控制和管理操作。同时使用了DB backend作为脚本任务的记录载体,支持主流关系型数据库如Mysql,Oracle等。
所述任务调度模块23用于当所述指定服务器是集群服务器的某一指定服务器时,将所述某一指定服务器的身份信息封装至对应的脚本任务,并将所述脚本任务打包并发送至所述某一指定服务器;接收并同步所述某一指定服务器发送的所述脚本任务执行状态。
具体地,如图2c所示,于一实施例中,此时为高可用模式,当所述指定服务器是集群服务器的某一指定服务器时,由参数组装模块21进行接收脚本任务,例如所述脚本任务为批量脚本任务,获取所述批量脚本任务的请求参数信息;由配置模块22进行基于所述请求参数信息和所述批量脚本任务的数量选取执行每个脚本任务对应的指定服务器;由任务调度模块23进行当所述指定服务器是集群服务器时,将所述批量脚本任务分别发送至集群服务器中的某一指定服务器执行所述脚本任务,所述集群服务器为一定数量的服务器,可由所述一定数量的服务器分别接收所述批量脚本任务,例如:集群服务器中的某一指定服务器接收一个脚本任务,或集群服务器中的某一指定服务器接收预设数量的脚本任务,即生产与消费剥离,即接收脚本任务和执行脚本任务剥离。已经为每一脚本任务和集群服务器中的某一指定服务器建立对应关系。采用Redis作为任务调度模块23的Broker,Broker可以被看成消息转发器。Broker也负责一些控制和管理操作。同时使用了DB backend作为脚本任务的记录载体,支持主流关系型数据库如Mysql,Oracle等。采用了模块化设计,耦合度低,扩展性强。
具体地,还包括:由参数组装模块21接收脚本任务终止请求,获取所述脚本任务终止请求所对应的脚本任务的指定服务器的认证信息;基于所述认证信息发送所述脚本任务终止请求至所述指定服务器,以终止所述脚本任务。所述认证信息是指所述指定服务器的账号和密码。具体地,于一实施例中,接收脚本任务终止请求包括:当参数组装模块21接收到了脚本任务终止请求(接收终止请求),并从数据库中获取所述脚本任务运行的相关执行属性。所述执行属性包括所述脚本任务的执行状态、运行所述脚本任务的服务器的ip地址。还包括:当所述脚本任务执行状态为已完成或异常时,则需要完成终止脚本任务的运行动作,若任务执行状态为进行中,则只需返回所述脚本任务的相关信息,并继续命令运行所述脚本任务的服务器执行所述脚本任务。获取所述脚本任务终止请求所对应的脚本任务的指定服务器的账号信息包括:当所述脚本任务执行状态为已完成或异常时,则需要完成终止脚本任务的运行动作,则还需进行以下动作:由任务调度模块23基于运行所述脚本任务的服务器的ip地址向所述配置模块22获取运行所述脚本任务的服务器的认证信息,所述认证信息包括但不限于所述服务器的账号和密码或服务器的认证身份密钥。由任务调度模块23基于所述认证信息发送所述脚本任务终止请求至所述指定服务器,以终止所述脚本任务:即通过SSH协议去链接所述服务器,以使所述服务器停止所述脚本任务的执行。在停止所述脚本任务的执行后,还包括对所述脚本任务的状态进行同步,从而确保所述脚本的状态在系统中不同环节中的一致性。从而完成了脚本任务完整的生命周期闭环,从接收脚本任务->指定脚本任务的服务器->执行脚本任务->结束脚本任务完成了完整的生命周期。在脚本任务的每个生命周期阶段,脚本任务的状态是处于可控状态,系统具备较高的健壮性。采用了模块化设计,耦合度低,扩展性强。
具体地,于一实施例中,首先所述脚本任务是否为合法请求的判断,当所述脚本任务为合法请求时,再执行接收脚本任务,并获取所述脚本任务的请求参数信息的步骤。接收脚本任务,并获取所述脚本任务的请求参数信息,鉴别所述脚本任务的类型。基于所述请求参数信息和所述脚本任务的数量选取执行脚本任务的指定服务器;具体为获取服务器的状态信息,以为分发脚本任务做准备。发送脚本任务:当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务;当所述指定服务器是集群服务器的某一指定服务器时,将所述集群服务器的某一指定服务器的身份信息封装至所述脚本任务,并将所述脚本任务打包并发送至所述集群服务器的某一指定服务器;在所述集群服务器的某一指定服务器接收所述脚本任务后,所述集群服务器的某一指定服务器执行所述脚本任务,并反馈所述脚本任务的执行状态,最后接收所述集群服务器的某一指定服务器发送的所述脚本任务执行状态,即所述脚本任务的状态更新。
需要说明的是,应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
于本发明一实施例中,本发明还包括一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一所述脚本任务调用方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
如图3所示,于一实施例中,本发明的脚本任务调用装置包括:处理器31和存储器32;所述存储器32用于存储计算机程序;所述处理器31与所述存储器32相连,用于执行所述存储器32存储的计算机程序,以使所述脚本任务调用装置执行任一所述的脚本任务调用方法。
具体地,所述存储器32包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
优选地,所述处理器31可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
如图4所示,于一实施例中,本发明的脚本任务调用系统,包括上述的脚本任务调用装置41和服务器42。
所述服务器42用于执行所述脚本任务,发送所述脚本任务的执行状态至所述脚本任务调用装置41。
综上所述,本发明脚本任务调用方法、系统、介质及装置,用于基于脚本任务的类别和数量合理选取执行脚本任务的指定服务器,能够调度执行脚本任务,能够在相对资源较充裕的环境中执行脚本任务,实现服务器资源的合理利用。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种脚本任务调用方法,其特征在于,包括以下步骤:
接收脚本任务,并获取所述脚本任务的请求参数信息;
基于所述请求参数信息和所述脚本任务的数量选取执行每个脚本任务对应的指定服务器;
当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务;
当所述指定服务器是集群服务器的某一指定服务器时,将所述某一指定服务器的身份信息封装至对应的脚本任务,并将所述脚本任务打包并发送至所述某一指定服务器;接收并同步所述某一指定服务器发送的所述脚本任务执行状态。
2.根据权利要求1所述的脚本任务调用方法,其特征在于,还包括进行所述脚本任务是否为合法请求的判断,当所述脚本任务为合法请求时,再执行接收脚本任务,并获取所述脚本任务的请求参数信息的步骤。
3.根据权利要求1所述的脚本任务调用方法,其特征在于,所述请求参数信息包括:发起对象的签名、执行体类型、时效类型、执行时间。
4.根据权利要求3所述的脚本任务调用方法,其特征在于,所述时效类型包括:周期任务类型、立即任务类型和定期任务类型。
5.根据权利要求1所述的脚本任务调用方法,其特征在于,还包括以下步骤:
接收脚本任务终止请求,获取所述脚本任务终止请求所对应的脚本任务的指定服务器的认证信息;
基于所述认证信息发送所述脚本任务终止请求至所述指定服务器,以终止所述脚本任务。
6.一种脚本任务调用系统,其特征在于,包括:参数组装模块、配置模块和任务调度模块;
所述参数组装模块用于接收脚本任务,并获取所述脚本任务的请求参数信息;
所述配置模块用于基于所述请求参数信息和所述脚本任务的数量选取执行每个脚本任务对应的指定服务器;
所述任务调度模块用于当所述指定服务器是单点服务器时,基于所述单点服务器执行所述脚本任务;
所述任务调度模块还用于当所述指定服务器是集群服务器的某一指定服务器时,将所述某一指定服务器的身份信息封装至对应的脚本任务,并将所述脚本任务打包并发送至所述某一指定服务器;接收并同步所述某一指定服务器发送的所述脚本任务执行状态。
7.根据权利要求1所述的脚本任务调用系统,其特征在于,所述请求参数信息包括:发起对象的签名、执行体类型、时效类型、执行时间。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行,以实现权利要求1至5中任一项所述脚本任务调用方法。
9.一种脚本任务调用装置,其特征在于,包括:处理器和存储器;
所述存储器用于存储计算机程序;
所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述脚本任务调用装置执行权利要求1至5中任一项所述的脚本任务调用方法。
10.一种脚本任务调用系统,其特征在于,包括权利要求9所述的脚本任务调用装置和服务器;所述服务器用于执行所述脚本任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910893513.2A CN110704210B (zh) | 2019-09-20 | 2019-09-20 | 脚本任务调用方法、系统、介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910893513.2A CN110704210B (zh) | 2019-09-20 | 2019-09-20 | 脚本任务调用方法、系统、介质及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110704210A true CN110704210A (zh) | 2020-01-17 |
CN110704210B CN110704210B (zh) | 2023-10-10 |
Family
ID=69195588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910893513.2A Active CN110704210B (zh) | 2019-09-20 | 2019-09-20 | 脚本任务调用方法、系统、介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704210B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444109A (zh) * | 2020-04-14 | 2020-07-24 | 福建天晴数码有限公司 | 一种移动端ui自动化测试方法及系统 |
CN112395158A (zh) * | 2020-11-17 | 2021-02-23 | 北京乐我无限科技有限责任公司 | 一种信息处理方法、装置及计算机可读存储介质 |
CN112597131A (zh) * | 2020-12-25 | 2021-04-02 | 广州趣丸网络科技有限公司 | 一种分布式脚本控制方法及相关装置 |
CN112597131B (zh) * | 2020-12-25 | 2024-07-30 | 广州趣丸网络科技有限公司 | 一种分布式脚本控制方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012840A (zh) * | 2010-12-23 | 2011-04-13 | 中国农业银行股份有限公司 | 一种数据的批量调度方法和系统 |
CN105843592A (zh) * | 2015-01-12 | 2016-08-10 | 芋头科技(杭州)有限公司 | 一种在预设嵌入式系统中实现脚本操作的系统 |
WO2018126964A1 (zh) * | 2017-01-04 | 2018-07-12 | 中兴通讯股份有限公司 | 任务执行方法、装置和服务器 |
CN109727176A (zh) * | 2019-01-03 | 2019-05-07 | 深圳壹账通智能科技有限公司 | 企业监管处理方法、装置、计算机设备和存储介质 |
CN109814995A (zh) * | 2019-01-04 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
-
2019
- 2019-09-20 CN CN201910893513.2A patent/CN110704210B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012840A (zh) * | 2010-12-23 | 2011-04-13 | 中国农业银行股份有限公司 | 一种数据的批量调度方法和系统 |
CN105843592A (zh) * | 2015-01-12 | 2016-08-10 | 芋头科技(杭州)有限公司 | 一种在预设嵌入式系统中实现脚本操作的系统 |
WO2018126964A1 (zh) * | 2017-01-04 | 2018-07-12 | 中兴通讯股份有限公司 | 任务执行方法、装置和服务器 |
CN109727176A (zh) * | 2019-01-03 | 2019-05-07 | 深圳壹账通智能科技有限公司 | 企业监管处理方法、装置、计算机设备和存储介质 |
CN109814995A (zh) * | 2019-01-04 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444109A (zh) * | 2020-04-14 | 2020-07-24 | 福建天晴数码有限公司 | 一种移动端ui自动化测试方法及系统 |
CN111444109B (zh) * | 2020-04-14 | 2023-05-12 | 福建天晴数码有限公司 | 一种移动端ui自动化测试方法及系统 |
CN112395158A (zh) * | 2020-11-17 | 2021-02-23 | 北京乐我无限科技有限责任公司 | 一种信息处理方法、装置及计算机可读存储介质 |
CN112597131A (zh) * | 2020-12-25 | 2021-04-02 | 广州趣丸网络科技有限公司 | 一种分布式脚本控制方法及相关装置 |
CN112597131B (zh) * | 2020-12-25 | 2024-07-30 | 广州趣丸网络科技有限公司 | 一种分布式脚本控制方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110704210B (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377413B (zh) | 基于bpmn标准的分布式任务异步调度和监控的系统 | |
CN107451147B (zh) | 一种kafka集群动态切换的方法和装置 | |
CN109582466A (zh) | 一种定时任务执行方法、分布式服务器集群及电子设备 | |
CN108881111B (zh) | 一种实现多租户系统的方法及装置 | |
CN110138876B (zh) | 任务部署方法、装置、设备及平台 | |
CN109165024A (zh) | 一种运维平台自动部署和监控服务器系统的方法 | |
CN110704210B (zh) | 脚本任务调用方法、系统、介质及装置 | |
CN111064626B (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
CN107294750B (zh) | 一种云集群能自识别的分布配置管理方法和装置 | |
WO2018177350A1 (zh) | 一种提供序列号的方法、装置、电子设备和可读存储介质 | |
CN112131315A (zh) | 多任务并行开发下的数据库同步方法及装置 | |
CN114531477A (zh) | 功能组件的配置方法、装置、计算机设备和存储介质 | |
CN116302708A (zh) | 基于负载均衡的数据备份方法、装置、设备及存储介质 | |
CN113485814A (zh) | 批量任务调度方法及装置 | |
CN113467782A (zh) | 一种确定业务流程的方法、装置及设备 | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
US9380076B1 (en) | Access management system | |
CN109117152B (zh) | 服务生成系统及方法 | |
CN112953770B (zh) | 边缘云网关免配置接入的方法、系统、介质及云端管理系统 | |
CN115357403A (zh) | 一种用于任务调度的微服务系统及任务调度方法 | |
CN110134461B (zh) | 一种数据交互的通用处理方法及装置 | |
CN112134950B (zh) | 维护Linux集群的方法、装置、维护服务器及介质 | |
CN113220869A (zh) | 银行外围系统的文本处理装置及方法 | |
CN110378554B (zh) | 运维管理系统、方法、介质及终端 | |
CN113704355A (zh) | 数据同步方法、电子设备及存储介质 |
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 |