CN117112177A - Shell脚本的调度管理方法、装置、设备及存储介质 - Google Patents

Shell脚本的调度管理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117112177A
CN117112177A CN202311121636.7A CN202311121636A CN117112177A CN 117112177 A CN117112177 A CN 117112177A CN 202311121636 A CN202311121636 A CN 202311121636A CN 117112177 A CN117112177 A CN 117112177A
Authority
CN
China
Prior art keywords
task
trigger
scheduling
shell script
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.)
Pending
Application number
CN202311121636.7A
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.)
CCB Finetech Co Ltd
Original Assignee
CCB Finetech 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 CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202311121636.7A priority Critical patent/CN117112177A/zh
Publication of CN117112177A publication Critical patent/CN117112177A/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/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
    • 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
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

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

本公开提供了一种Shell脚本的调度管理方法、装置、设备及存储介质,可以应用于建信金科技术领域。该方法包括:生成调度管理界面,所述调度管理界面包括任务调度列表,所述任务调度列表用于展示和编辑Shell脚本的基本信息、执行时间及其任务状态;响应于用户发起对所述任务调度列表中选中的Shell脚本的任务请求,生成所述Shell脚本的任务触发器和任务对象;通过所述Quartz调度器将所述任务触发器和所述任务对象绑定,根据所述任务触发器定时触发所述任务对象;获取所述任务对象执行任务逻辑产生的任务信息,将所述任务信息展示在所述任务调度列表的任务状态栏中。

Description

Shell脚本的调度管理方法、装置、设备及存储介质
技术领域
本公开涉及金融科技领域,尤其涉及一种Shell脚本的调度管理方法、装置、设备、介质和程序产品。
背景技术
Quartz是一个定时作业调度框架,其三大组件包括Job任务接口、Trigger触发器和Scheduler调度器。Scheduler是任务的调度器,它将Job任务与具体的触发器Trigger关联起来,基于Trigger设定的时间执行Job任务。Scheduler还提供任务调度的管理功能,如:任务的开始、暂停、停止等。
目前,管理Shell脚本的调度任务通常无法实现对任务的状态进行可视化实时追踪,用户开发人员需要自己到后台数据库调取数据,无法灵活的对任务进行新增/修改/删除/暂停任务操作。基于上述Quartz工作原理以及优点,如何基于Quartz实现Shell脚本任务的管理和定时调度,是需要解决的技术问题。
发明内容
鉴于上述问题,本公开提供了Shell脚本的调度管理方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种Shell脚本的调度管理方法,包括:生成调度管理界面,所述调度管理界面包括任务调度列表,所述任务调度列表用于展示和编辑Shell脚本的基本信息、执行时间及其任务状态;响应于用户发起对所述任务调度列表中选中的Shell脚本的任务请求,生成所述Shell脚本的任务触发器和任务对象;通过所述Quartz调度器将所述任务触发器和所述任务对象绑定,根据所述任务触发器定时触发所述任务对象;获取所述任务对象执行任务逻辑产生的任务信息,将所述任务信息展示在所述任务调度列表的任务状态栏中。
根据本公开的实施例,所述方法包括:响应于用户通过所述调度管理界面发起Shell脚本信息获取请求,向后端服务器获取所述Shell脚本的基本信息,并将所述基本信息自动填入所述任务调度列表中。
根据本公开的实施例,所述响应于用户发起对所述任务调度列表中选中的Shell脚本的任务请求,生成所述Shell脚本的任务触发器和任务对象包括:创建实现Job接口的任务类,所述任务类内定义所述Shell脚本的任务逻辑;响应于用户的所述任务请求,基于所述任务类生成所述Shell脚本的任务对象,基于所述执行时间创建任务触发器。
根据本公开的实施例,所述通过所述Quartz调度器将所述任务触发器和所述任务对象绑定,根据所述任务触发器定时触发所述任务对象包括:创建所述Quartz调度器,设置所述Quartz调度器的线程池大小;将所述任务触发器和所述任务对象绑定并添加至所述Quartz调度器,并从所述线程池中分配线程给所述任务触发器和所述任务对象,以根据所述任务触发器的触发执行所述任务对象的任务逻辑。
根据本公开的实施例,所述方法还包括:响应于用户更改所述任务调度列表,暂停并删除所述任务调度列表中被修改信息的Shell脚本对应的任务对象和触发器;根据所述Shell脚本被修改的信息重新创建所述任务对象和触发器;通过所述Quartz调度器重启所述任务对象和触发器。
根据本公开的实施例,所述方法还包括:创建任务数据管理对象,所述任务数据管理对象与所述任务调度列表中的各所述Shell脚本一一对应,用于记录所述Shell脚本的基本信息、执行时间、任务状态信息和任务信息;响应于用户更改所述任务调度列表,查询与所述任务调度列表中被修改信息的Shell脚本对应的任务数据管理对象,根据用户更改的数据更新所述任务数据管理对象记录的内容。
本公开的第二方面提供了一种Shell脚本的调度管理装置,包括:界面生成模块,用于生成调度管理界面,所述调度管理界面包括任务调度列表,所述任务调度列表用于展示和编辑Shell脚本的基本信息、执行时间及其任务状态;任务对象生成模块,用于响应于用户发起对所述任务调度列表中选中的Shell脚本的任务请求,生成所述Shell脚本的任务触发器和任务对象;任务调度管理模块,用于通过所述Quartz调度器将所述任务触发器和所述任务对象绑定,根据所述任务触发器定时触发所述任务对象;任务数据获取模块,用于获取所述任务对象执行任务逻辑产生的任务信息,将所述任务信息展示在所述任务调度列表的任务状态栏中。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法。
根据本公开提供的Shell脚本的调度管理方法、装置、设备、介质和程序产品,通过Quartz动态管理shell脚本调度任务,能够在页面动态生成任务,并对任务进行管理,操作方面,能够方便的交付给业务人员进行操作
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的Shell脚本的调度管理方法、装置、设备、介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的Shell脚本的调度管理方法的流程图;
图3示意性示出了根据本公开实施例的Shell脚本的调度管理方法的示意图;
图4示意性示出了根据本公开实施例的Shell脚本的调度管理装置的结构框图;以及
图5示意性示出了根据本公开实施例的适于实现Shell脚本的调度管理方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本公开的技术方案中,所涉及的数据(如包括但不限于用户个人信息)的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
本公开的实施例提供了一种Shell脚本的调度管理方法,包括:生成调度管理界面,调度管理界面包括任务调度列表,任务调度列表用于展示和编辑Shell脚本的基本信息、执行时间及其任务状态;响应于用户发起对任务调度列表中选中的Shell脚本的任务请求,生成Shell脚本的任务触发器和任务对象;通过Quartz调度器将任务触发器和任务对象绑定,根据任务触发器定时触发任务对象;获取任务对象执行任务逻辑产生的任务信息,将任务信息展示在任务调度列表的任务状态栏中。
图1示意性示出了根据本公开实施例的Shell脚本的调度管理方法及装置的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括银行的软件开发项目。网络104用以在第一终端设备101、第二终端设备102、第三终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用第一终端设备101、第二终端设备102、第三终端设备103中的至少一个通过网络104与服务器105交互,以接收或发送消息等。第一终端设备101、第二终端设备102、第三终端设备103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
第一终端设备101、第二终端设备102、第三终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用第一终端设备101、第二终端设备102、第三终端设备103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的Shell脚本的调度管理方法一般可以由服务器105执行。相应地,本公开实施例所提供的Shell脚本的调度管理装置一般可以设置于服务器105中。本公开实施例所提供的Shell脚本的调度管理方法也可以由不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的Shell脚本的调度管理装置也可以设置于不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图3对公开实施例的Shell脚本的调度管理方法进行详细描述。
图2示意性示出了根据本公开实施例的Shell脚本的调度管理方法的流程图。
如图2所示,该实施例的Shell脚本的调度管理方法包括操作S210~操作S240。
在操作S210,生成调度管理界面,调度管理界面包括任务调度列表,任务调度列表用于展示和编辑Shell脚本的基本信息、执行时间及其任务状态。
在本实施例中,调度管理界面可以基于node.js+vue+element.ui实现,包括任务调度列表、任务新建、修改、暂停、删除等操作按钮。当用户在页面端发起操作请求,前端请求带着任务调度的相关信息,比如shell脚本的地址等请求后端进行消息处理,后端接口处理请求后,数据处理成功则存储到数据库中并返回给前端,失败则提示失败信息。
在操作S220,响应于用户发起对任务调度列表中选中的Shell脚本的任务请求,生成Shell脚本的任务触发器和任务对象。
在本实施例中,使用Quartz度框架构建管理系统。其中,任务对象Job是任务逻辑的缔造者,自定义的任务逻辑就存在它的execute()方法中,Trigger是触发器通过将复杂的触发条件设置到Trigger实例中完成对应事件的监听。
在操作S230,通过Quartz调度器将任务触发器和任务对象绑定,根据任务触发器定时触发任务对象。
在本实施例中,Scheduler是Quartz的调度器,它将Job任务与具体的触发器Trigger关联起来,基于Trigger设定的时间执行Job。并提供任务调度的管理功能,如:任务的开始、暂停、停止等。
在操作S240,获取任务对象执行任务逻辑产生的任务信息,将任务信息展示在任务调度列表的任务状态栏中。
将数据直接展示在界面中,简化了用户查看任务状态的流程,能提升脚本任务状态的监控效率。
根据本实施例提供的方法,使用Quartz度框架构建管理系统。通过创建任务调度列表,在桌面上形成Shell脚本可视化的调度任务。其中,调度任务实际根据任务调度列表中的信息生成,通过后台创建任务触发器和任务对象,基于Quartz调度触发器和任务对象执行任务逻辑。该方法一方面实现了Shell脚本的可视化管理,另一方面实现在可视化界面上查看任务执行状态,实现了实时监控Shell脚本的调度任务。
可选地,任务调度列表展示的可以是Shell脚本的文件名列表,也可以是Shell脚本的具体内容,或者是通过点击Shell脚本,可查看Shell脚本的脚本内容。
在本实施例中,响应于用户点击可视化界面上展示的Shell脚本,生成Shell脚本的信息获取请求,从服务器获取Shell脚本的脚本信息,其中,该脚本信息包括Shell脚本的地址等。服务器获取请求后查询对应的脚本信息,存储数据库并返回给可视化界面。
可选地,在本实施例中,可以由用户在调度管理界面发起请求,创建制定的Shell脚本的调度任务。调度管理界面响应于用户通过调度管理界面发起Shell脚本信息获取请求,向后端服务器获取Shell脚本的基本信息,并将基本信息自动填入任务调度列表中。
可选地,在任务列表的任务栏中,可以设置对应的Shell脚本的任务ID、任务名称、执行时间、任务状态及其他相关字段。其中,任务ID为该定时任务的唯一标识任务的ID,便于识别该定时任务。任务名称为任务定时的名称或描述。执行时间为任务的执行时间或执行规则。任务状态表示了任务的启用、暂停等不同的执行状态。其他相关字段为可以根据需求添加的其他字段,如任务参数、执行结果等。
进一步的,根据S220,响应于用户发起对任务调度列表中选中的Shell脚本的任务请求,生成Shell脚本的任务触发器和任务对象。S220包括S221~S222。
在操作S221,创建实现Job接口的任务类,任务类内定义Shell脚本的任务逻辑。创建一个实现Job接口的任务类可以示意为:
在操作S222,响应于用户的任务请求,基于任务类生成Shell脚本的任务对象,基于执行时间创建任务触发器。
创建触发器可以示意为:
Trigger trigger=TriggerBuilder.newTrigger()
.withIdentity(″myTrigger″,″group1″)
.withSchedule(CronScheduleBuilder.cronSchedule(″0 0/5***?″))
.build();
创建任务可以示意为:
JobDetail jobDetail=JobBuilder.newJob(MyJob.class)
.withIdentity(″myJob″,″group1″)
.build();
在业务层面,新建调度任务时,首先创建一个触发器(Trigger)对象,用于定义任务的触发条件,如执行时间、执行频率等。然后创建任务(Job)对象,将任务逻辑封装到Job类中。通过将触发器和任务绑定,便于稍后将其添加到调度器中,供调度器调动执行定时任务。
更进一步的,根据S230,通过Quartz调度器将任务触发器和任务对象绑定,根据任务触发器定时触发任务对象。
在本实施例中,可在调度管理界面启动时即创建Quartz调度器,设置Quartz调度器的线程池大小。通过设置线程池,可以并行执行多个定时任务。当其中一个定时任务根据预设的预设时间为暂停或者执行完毕状态时,执行该定时任务的线程可由线程池回收,并被重新分配执行新的定时任务,从而使线程池中的线程得到有效利用,且执行效率高。
将任务触发器和任务对象绑定并添加至Quartz调度器,并从线程池中分配线程给任务触发器和任务对象,以根据任务触发器的触发执行任务对象的任务逻辑。将触发器和任务绑定,并添加到调度器中可表示为:scheduler.scheduleJob(jobDetail,trigger)。
在本实施例中,调度管理界面的后台系统可实现Quartz调度器、Job对象、Trigger触发器的自动化生成。其中,Job对象的任务逻辑可以为用户在调度管理界面上编写而成,Trigger触发器设置的执行时间是根据调度管理界面上显示的执行时间。在脚本任务的调度过程中,处于监控的需要,调度管理界面上的数据有必要备份存储。因此在本实施例中,除了在调度管理界面上显示任务调度列表的相关信息,还需要将此类信息备份存储。执行该步骤包括S250。
在操作S250,创建任务数据管理对象,任务数据管理对象与任务调度列表中的各Shell脚本一一对应,用于记录Shell脚本的基本信息、执行时间、任务状态信息和任务信息。
通过任务数据管理对象管理数据,并将数据存储在后台数据库中,便于用户随时查看。
在本实施例中,用户可通过调度管理界面调整Shell脚本定时任务的执行时间、任务逻辑、ID等等信息。当用户更改相关信息时,后台需记录该现象,并及时更改相关信息,以将Shell脚本的相关信息及其任务信息匹配管理。
具体的,响应于用户更改任务调度列表,查询与任务调度列表中被修改信息的Shell脚本对应的任务数据管理对象,根据用户更改的数据更新任务数据管理对象记录的内容。
进一步的,本公开实施例还基于Quartz可以实现修改调度任务,并结合任务表进行管理。具体包括S261~S263。
在操作S261,响应于用户更改任务调度列表,暂停并删除任务调度列表中被修改信息的Shell脚本对应的任务对象和触发器。
可选地,可以根据任务ID或其他标识从任务表中查询任务信息。
在操作S262,根据Shell脚本被修改的信息重新创建任务对象和触发器。
该过程与S220的具体过程一致,在此不再赘述。
在操作S263,通过Quartz调度器重启任务对象和触发器。
Quartz调度器通过线程池持续的调度多个定时任务,当其中一个定时任务暂停时,会空出所占用的线程。该线程可被调度至执行其他的定时任务。当被暂停的定时任务被重新创建并启动时,Quartz调度器将分配新的线程来完成该重新创建的定时任务,从而实现定时任务的更新。在此过程中,任务数据管理对象将配合任务对象和触发器的更新,更新其存储的相关数据,保证数据的同步。
图3示意性示出了根据本公开实施例的Shell脚本的调度管理方法的示意图。
如图3所示,根据本公开实施例提供的Shell脚本的调度管理方法,可以通过可视化界面管Shell脚本的的定时任务,其中,通过Quartz框架实现定时任务调度,可以实现Quartz的可视化任务监控。
当任务列表中新增定时任务,创建该定时任务的Job任务对象,通过Trigger触发器管理该任务对象的执行时间。当任务列表中新增、修改或删除定时任务时,后台会相应的更新Job任务对象,并生成对应的Trigger触发器,由Quartz调度器将Trigger触发器与Job任务对象绑定,执行调度任务。其中,无论新增、修改或删除任务成功或失败,均可在可视化界面上给出相应的提示,并配合任务列表,在数据库中更新数据。
在本实施例中,为了便于监控,可将定时任务在执行过程中产生的数据存储并展示在可视化界面中。通过与数据库进行交互,可以为用户提供可视化的数据查看功能。进一步的,可以在任务界面中设置多种数据统计功能,例如将数据分别从时间维度、数据类别、任务状态等角度分别进行统计,进一步提升任务调度检视效率。
根据本公开实施例提供的Shell脚本的调度管理方法,通过构建可视化界面,使用Quartz框架实现定时任务调度系统,可以实现Shell脚本的可视化任务监控。该方法容易实现,可以根据实际需求灵活配置定时任务的执行时间、频率和执行逻辑,以满足任务调度系统的要求,可提升Shell脚本任务的调试效率。
基于上述Shell脚本的调度管理方法,本公开还提供了一种Shell脚本的调度管理装置。以下将结合图4对该装置进行详细描述。
图4示意性示出了根据本公开实施例的Shell脚本的调度管理装置的结构框图。
如图4所示,该实施例的的Shell脚本的调度管理装置400包括界面生成模块410、任务对象生成模块420、任务调度管理模块430和任务数据获取模块440。
界面生成模块410用于生成调度管理界面,调度管理界面包括任务调度列表,任务调度列表用于展示和编辑Shell脚本的基本信息、执行时间及其任务状态。在一实施例中,界面生成模块410可以用于执行前文描述的操作S210,在此不再赘述。
任务对象生成模块420用于响应于用户发起对任务调度列表中选中的Shell脚本的任务请求,生成Shell脚本的任务触发器和任务对象。在一实施例中,任务对象生成模块420可以用于执行前文描述的操作S220,在此不再赘述。
任务调度管理模块430用于通过Quartz调度器将任务触发器和任务对象绑定,根据任务触发器定时触发任务对象。在一实施例中,任务调度管理模块430可以用于执行前文描述的操作S230,在此不再赘述。
任务数据获取模块440用于获取任务对象执行任务逻辑产生的任务信息,将任务信息展示在任务调度列表的任务状态栏中。在一实施例中,任务数据获取模块440可以用于执行前文描述的操作S240,在此不再赘述。
根据本公开的实施例,界面生成模块410、任务对象生成模块420、任务调度管理模块430和任务数据获取模块440中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,界面生成模块410、任务对象生成模块420、任务调度管理模块430和任务数据获取模块440中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,界面生成模块410、任务对象生成模块420、任务调度管理模块430和任务数据获取模块440中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图5示意性示出了根据本公开实施例的适于实现Shell脚本的调度管理方法的电子设备的方框图。
如图5所示,根据本公开实施例的电子设备500包括处理器501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。处理器501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器501还可以包括用于缓存用途的板载存储器。处理器501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 503中,存储有电子设备500操作所需的各种程序和数据。处理器501、ROM502以及RAM 503通过总线504彼此相连。处理器501通过执行ROM 502和/或RAM 503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 502和RAM 503以外的一个或多个存储器中。处理器501也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备500还可以包括输入/输出(I/O)接口505,输入/输出(I/O)接口505也连接至总线504。电子设备500还可以包括连接至I/O接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 502和/或RAM 503和/或ROM 502和RAM 503以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的Shell脚本的调度管理方法。
在该计算机程序被处理器501执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分509被下载和安装,和/或从可拆卸介质511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被处理器501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种Shell脚本的调度管理方法,其特征在于,包括:
生成调度管理界面,所述调度管理界面包括任务调度列表,所述任务调度列表用于展示和编辑Shell脚本的基本信息、执行时间及其任务状态;
响应于用户发起对所述任务调度列表中选中的Shell脚本的任务请求,生成所述Shell脚本的任务触发器和任务对象;
通过所述Quartz调度器将所述任务触发器和所述任务对象绑定,根据所述任务触发器定时触发所述任务对象;
获取所述任务对象执行任务逻辑产生的任务信息,将所述任务信息展示在所述任务调度列表的任务状态栏中。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
响应于用户通过所述调度管理界面发起Shell脚本信息获取请求,向后端服务器获取所述Shell脚本的基本信息,并将所述基本信息自动填入所述任务调度列表中。
3.根据权利要求1所述的方法,其特征在于,所述响应于用户发起对所述任务调度列表中选中的Shell脚本的任务请求,生成所述Shell脚本的任务触发器和任务对象包括:
创建实现Job接口的任务类,所述任务类内定义所述Shell脚本的任务逻辑;
响应于用户的所述任务请求,基于所述任务类生成所述Shell脚本的任务对象,基于所述执行时间创建任务触发器。
4.根据权利要求1所述的方法,其特征在于,所述通过所述Quartz调度器将所述任务触发器和所述任务对象绑定,根据所述任务触发器定时触发所述任务对象包括:
创建所述Quartz调度器,设置所述Quartz调度器的线程池大小;
将所述任务触发器和所述任务对象绑定并添加至所述Quartz调度器,并从所述线程池中分配线程给所述任务触发器和所述任务对象,以根据所述任务触发器的触发执行所述任务对象的任务逻辑。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于用户更改所述任务调度列表,暂停并删除所述任务调度列表中被修改信息的Shell脚本对应的任务对象和触发器;
根据所述Shell脚本被修改的信息重新创建所述任务对象和触发器;
通过所述Quartz调度器重启所述任务对象和触发器。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
创建任务数据管理对象,所述任务数据管理对象与所述任务调度列表中的各所述Shell脚本一一对应,用于记录所述Shell脚本的基本信息、执行时间、任务状态信息和任务信息;
响应于用户更改所述任务调度列表,查询与所述任务调度列表中被修改信息的Shell脚本对应的任务数据管理对象,根据用户更改的数据更新所述任务数据管理对象记录的内容。
7.一种Shell脚本的调度管理装置,其特征在于,包括:
界面生成模块,用于生成调度管理界面,所述调度管理界面包括任务调度列表,所述任务调度列表用于展示和编辑Shell脚本的基本信息、执行时间及其任务状态;
任务对象生成模块,用于响应于用户发起对所述任务调度列表中选中的Shell脚本的任务请求,生成所述Shell脚本的任务触发器和任务对象;
任务调度管理模块,用于通过所述Quartz调度器将所述任务触发器和所述任务对象绑定,根据所述任务触发器定时触发所述任务对象;
任务数据获取模块,用于获取所述任务对象执行任务逻辑产生的任务信息,将所述任务信息展示在所述任务调度列表的任务状态栏中。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的方法。
CN202311121636.7A 2023-08-31 2023-08-31 Shell脚本的调度管理方法、装置、设备及存储介质 Pending CN117112177A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311121636.7A CN117112177A (zh) 2023-08-31 2023-08-31 Shell脚本的调度管理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311121636.7A CN117112177A (zh) 2023-08-31 2023-08-31 Shell脚本的调度管理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117112177A true CN117112177A (zh) 2023-11-24

Family

ID=88805360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311121636.7A Pending CN117112177A (zh) 2023-08-31 2023-08-31 Shell脚本的调度管理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117112177A (zh)

Similar Documents

Publication Publication Date Title
US11394769B2 (en) Framework for the deployment of event-based applications
US10817488B2 (en) Historical data representation in cloud service
CN107729139B (zh) 一种并发获取资源的方法和装置
KR20210045299A (ko) 로봇 프로세스 자동화를 사용한 문서 프로세싱을 위한 장기 실행 워크플로우
US20140026120A1 (en) Unit testing an enterprise javabeans (ejb) bean class
CN115082247B (zh) 基于标签库的系统投产方法、装置、设备、介质和产品
CN113076224B (zh) 数据备份方法、数据备份系统、电子设备及可读存储介质
EP4211560A1 (en) Smart distributed tracing context injection
CN116302561A (zh) 用于应用实例的状态控制方法、装置、设备及存储介质
CN114237765B (zh) 功能组件处理方法、装置、电子设备和介质
CN117112177A (zh) Shell脚本的调度管理方法、装置、设备及存储介质
CN113986679A (zh) 基于配置信息热加载的性能分析方法及装置
CN115373822A (zh) 任务调度方法、任务处理方法、装置、电子设备和介质
CN117193990B (zh) http接口的调度管理方法、装置、设备及存储介质
US8554798B2 (en) Asynchronous state engine with plug-ins for flexible application development
CN114928603A (zh) 客户端软件的升级方法、装置、电子设备和介质
CN114677114A (zh) 基于图形拖拽的审批流程生成方法及装置
CN114140091A (zh) 操作记录显示方法、装置、设备及介质
CN112597224A (zh) 数据导出方法、数据导出装置、电子设备及介质
CN117112081A (zh) Python脚本的调度管理方法、装置、设备及介质
CN114268558B (zh) 监控图的生成方法、装置、设备、介质
US10977210B2 (en) Methods for implementing an administration and testing tool
CN116795853A (zh) 基于SparkSQL的批量作业处理方法、装置、电子设备及介质
CN117131018A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN114371979A (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