CN113886040A - 一种任务调度方法及装置 - Google Patents
一种任务调度方法及装置 Download PDFInfo
- Publication number
- CN113886040A CN113886040A CN202111122183.0A CN202111122183A CN113886040A CN 113886040 A CN113886040 A CN 113886040A CN 202111122183 A CN202111122183 A CN 202111122183A CN 113886040 A CN113886040 A CN 113886040A
- Authority
- CN
- China
- Prior art keywords
- task
- issued
- project
- execution
- scheduling
- 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
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/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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Abstract
本发明公开了一种任务调度方法及装置,该方法应用于任务调度系统,包括:对各个项目对应的目标调度资源中各个任务执行定时触发,将所述各个任务定时触发后所对应的执行信息生成执行记录,并将所述执行记录记录于数据库中本地消息列表;查询所述本地消息列表中各个任务对应的执行状态信息,得到查询结果;当基于查询结果确定所述本地消息列表中存在待下发的任务时,将所述待下发的任务发布到所述各个项目对应的同名消息队列中;当确定所述待下发的任务已发布至所述同名消息队列,将所述执行记录中所述待下发的任务的执行状态更新为已下发,以及,当确定所述本地消息列表中的所有任务的执行状态更新为已下发,则确定任务调度完成。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种任务调度方法及装置。
背景技术
在大数据平台中,经常会定时运行一些业务,例如定时从数据库将新增数据导入到大数据平台,将大数据平台处理后的数据导出到数据库或者是文件系统。具体的,任务调度是指基于给定的时间点,给定的时间间隔或者给定执行次数自动的执行任务。因此在大数据平台中,任务调度起着至关重要的作用。
目前,当对项目进行任务调度时,由于运行任务的调度资源存在上限,即当运行任务达到一定个数后,需要通过资源队列进行排队,而在任务下发至消息队列前,一旦任务调度中心宕机重启或服务器网络超时,可能导致未下发的任务丢失。
发明内容
本发明实施例提供一种任务调度方法及装置,用于解决现有技术中任务易丢失的技术问题。
第一方面,提供一种任务调度方法,应用于任务调度系统,该方法至少包括:
对各个项目对应的目标调度资源中各个任务执行定时触发,将所述各个任务定时触发后所对应的执行信息生成执行记录,并将所述执行记录记录于数据库中本地消息列表;其中,所述执行记录至少包括代码备份信息以及任务的执行状态信息;
查询所述本地消息列表中各个任务对应的执行状态信息,得到查询结果;其中,所述执行状态信息用于指示任一所述任务是否已下发;
当基于查询结果确定所述本地消息列表中存在待下发的任务时,将所述待下发的任务发布到所述各个项目对应的同名消息队列中;
当确定所述待下发的任务已发布至所述同名消息队列,将所述执行记录中所述待下发的任务的执行状态更新为已下发,以及,当确定所述本地消息列表中的所有任务的执行状态更新为已下发,则确定任务调度完成。
在一种可能的实施方式中,在对各个项目对应的目标调度资源中各个任务执行定时触发之前,所述方法还包括:
接收申请第一项目对应的调度资源的第一请求,所述第一请求中携带有第一项目的项目类型;
基于所述项目类型和预设分配规则,确定所述第一项目对应的目标调度资源。
在一种可能的实施方式中,查询所述数据库中本地消息列表中各个任务对应的执行状态信息,包括:
确定预设查询周期;
当确定当前时刻处于所述预设查询周期时,查询所述数据库中本地消息列表中各个任务对应的执行状态信息;
基于所述各个任务对应的执行状态信息,获得查询结果;其中,所述查询结果包括待下发的任务的个数和已下发但未结束的任务的个数。
在一种可能的实施方式中,所述方法还包括:
当所述执行记录中任一任务的执行状态更新为已下发后,将所述本地消息列表中所述任一任务对应的记录删除。
在一种可能的实施方式中,在查询所述数据库中本地消息列表中的待下发任务的个数之后,所述方法还包括:
当确定所述查询结果在预设时长内一直为空,或者,所述查询结果中待下发任务的个数在所述预设时长内小于所述目标调度资源对应的任务个数,向所述任务调度系统发送第一提示信息;所述第一提示信息用于提示任务调度系统对空闲资源进行调度处理。
在一种可能的实施方式中,基于所述项目类型和预设分配规则,确定所述第一项目对应的目标调度资源,包括:
确定所述任务调度系统的调度资源池的使用率是否达到预设阈值;
当确定所述使用率未达到所述预设阈值时,则基于所述预设分配规则,确定项目类型对应的调度资源比例;
基于所述调度资源比例和所述调度资源池,确定为所述第一项目分配的目标调度资源。
在一种可能的实施方式中,在对各个项目对应的目标调度资源中各个任务执行定时触发之前,所述方法还包括:
接收申请新增项目的调度资源的第二请求,所述第二请求中携带有所述新增项目的任务个数;
基于所述请求和所述任务调度系统的调度资源池,为所述新增项目分配对应的新增调度资源。
第二方面,提供一种任务调度装置,应用于任务调度系统,该装置至少包括:
处理单元,用于对各个项目对应的目标调度资源中各个任务执行定时触发,将所述各个任务定时触发后所对应的执行信息生成执行记录,并将所述执行记录记录于数据库中本地消息列表;其中,所述执行记录至少包括代码备份信息以及任务的执行状态信息;
查询单元,用于查询所述本地消息列表中各个任务对应的执行状态信息,得到查询结果;其中,所述执行状态信息用于指示任一所述任务是否已下发;
下发单元,用于当基于查询结果确定所述本地消息列表中存在待下发的任务时,将所述待下发的任务发布到所述各个项目对应的同名消息队列中;
更新单元,用于当确定所述待下发的任务已发布至所述同名消息队列,将所述执行记录中所述待下发的任务的执行状态更新为已下发,以及,当确定所述本地消息列表中的所有任务的执行状态更新为已下发,则确定任务调度完成。
在一种可能的实施方式中,在对各个项目对应的目标调度资源中各个任务执行定时触发之前,所述处理单元还用于:
接收申请第一项目对应的调度资源的第一请求,所述第一请求中携带有第一项目的项目类型;
基于所述项目类型和预设分配规则,确定所述第一项目对应的目标调度资源。
在一种可能的实施方式中,所述查询单元,具体用于:
确定预设查询周期;
当确定当前时刻处于所述预设查询周期时,查询所述数据库中本地消息列表中各个任务对应的执行状态信息;
基于所述各个任务对应的执行状态信息,获得查询结果;其中,所述查询结果包括待下发的任务的个数和已下发但未结束的任务的个数。
在一种可能的实施方式中,所述装置还包括删除单元,用于:
当所述执行记录中任一任务的执行状态更新为已下发后,将所述本地消息列表中所述任一任务对应的记录删除。
在一种可能的实施方式中,在查询所述数据库中本地消息列表中的待下发任务的个数之后,所述装置还包括提示单元,用于:
当确定所述查询结果在预设时长内一直为空,或者,所述查询结果中待下发任务的个数在所述预设时长内小于所述目标调度资源对应的任务个数,向所述任务调度系统发送第一提示信息;所述第一提示信息用于提示任务调度系统对空闲资源进行调度处理。
在一种可能的实施方式中,所述处理单元,具体用于:
确定所述任务调度系统的调度资源池的使用率是否达到预设阈值;
当确定所述使用率未达到所述预设阈值时,则基于所述预设分配规则,确定项目类型对应的调度资源比例;
基于所述调度资源比例和所述调度资源池,确定为所述第一项目分配的目标调度资源。
在一种可能的实施方式中,在对各个项目对应的目标调度资源中各个任务执行定时触发之前,所述处理单元还用于:
接收申请新增项目的调度资源的第二请求,所述第二请求中携带有所述新增项目的任务个数;
基于所述请求和所述任务调度系统的调度资源池,为所述新增项目分配对应的新增调度资源。
第三方面,提供一种计算机设备,所述计算机设备包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中的任一方法包括的步骤。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行实现如第一方面中的任一方法包括的步骤。
第五方面,提供一种计算机程序产品,当所述计算机程序产品在计算机设备运行时,使得计算机设备能够执行第一方面中任一方法包括的步骤。
本发明的实施例提供的技术方案至少带来以下有益效果:
在本发明实施例中,可以对各个项目对应的目标调度资源中各个任务执行定时触发,将各个任务定时触发后所对应的执行信息生成执行记录,并将执行记录记录于数据库中本地消息列表,这样,可以查询本地消息列表中各个任务对应的执行状态信息,得到查询结果,从而当基于查询结果确定本地消息列表中存在待下发的任务时,将待下发的任务发布到各个项目对应的同名消息队列中;当确定待下发的任务已发布至同名消息队列,将执行记录中待下发的任务的执行状态更新为已下发。
也就是说,每次查询时,由于本地消息列表中仅存储了待下发任务和已下发但未结束的任务的执行记录,且当任务调度系统由于调度资源不足发生等待或异常时,任务执行记录的状态不会被更新,因此任务会被再次下发,从而可以避免任务的丢失。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或通过实施而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理,并不构成对本发明的不当限定。
图1为本发明实施例中的应用场景示意图;
图2为本发明实施例中的任务调度系统的框图示意图;
图3为本发明实施例中的申请调度资源的过程示意图;
图4为本发明实施例中任务调度方法的流程图;
图5为本发明实施例中待执行任务下发的示意图;
图6为本发明实施例中执行任务的示意图;
图7为本发明实施例中任务调度装置的结构框图;
图8为本发明实施例中计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明的说明书和权利要求书及附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
如前所述,现有技术中在进行任务调度时,可能存在任务丢失的情况出现,导致后续项目无法执行。
鉴于此,本发明实施例提供一种任务调度方法及装置,其中,该方法引入了记录执行记录的本地消息列表,具体的,对各个任务执行定时触发,且将各个任务定时触发后所对应的执行信息生成执行记录,然后将执行记录持久化到数据库,从而基于本地消息列表中各个任务对应的执行状态信息,对各个任务进行下发,以及对各个任务的执行状态进行更新,从而可以尽量确保异常情况下任务最终下发。
介绍完本发明实施例的设计思想之后,下面对本发明实施例中的技术方案适用的应用场景做一些简单介绍,需要说明的是,本发明实施例描述应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
在本发明实施例中,该技术方案可以应用于任何需要进行任务调度的场景中,本发明实施例对此不做限定。
在本发明实施例中,请参阅图1所示的一种应用场景示意图。该场景中包括申请调度资源的项目管理员对应使用的第一电子设备101、审核项目申请的系统管理对应使用的第二电子设备102以及对调度资源进行任务调度的部署任务调度系统的计算机设备103,以及用于存储数据的数据库。
其中,计算机设备103可以包括一个或多个处理器、存储器、与第一电子设备101交互的I/O接口以及与第二电子设备102交互的I/O接口等。
在具体的实施过程中,可以是多个计算机设备103与多个第一电子设备101交互,也可以是一个计算机设备103与多个第一电子设备101交互,还可以是一个计算机设备103与一个第一电子设备101交互,本发明实施例中不做限制。需要说明的是,图1中仅以一个第一电子设备101与第二电子设备102以及计算机设备103的交互示出。
在具体的实施过程中,第一电子设备101与计算机设备103之间可以通过一个或者多个网络进行通信连接。第二电子设备102与计算机设备103之间也可以通过一个或者多个网络进行通信连接。该网络可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(WIreless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本发明实施例对此不做限制。
请参阅图2所示,为发明实施例能够适用的一种系统示意图,该图中包括调度资源管理模块201以及任务执行模块202,本发明实施例的任务调度方法可以通过图1中调度资源管理模块201和任务执行模块202协同来实现。
在具体的实施过程中,调度资源管理模块201可以接收系统管理员或项目管理员基于其对应的电子设备发送的信息,然后对该信息进行处理,实现对调度资源的管理。
在具体的实施过程中,任务执行模块202可以对各个项目对应的目标调度资源中各个任务执行定时触发,将各个任务定时触发后所对应的执行信息生成执行记录,并将执行记录记录于数据库中本地消息列表;查询本地消息列表中各个任务对应的执行状态信息,得到查询结果;当基于查询结果确定本地消息列表中存在待下发的任务时,将待下发的任务发布到各个项目对应的同名消息队列中;当确定待下发的任务已发布至同名消息队列,将执行记录中待下发的任务的执行状态更新为已下发。
请参阅图3所示,为本发明实施例中示出的申请调度资源的过程示意图。具体的,项目管理员可以基于其对应的第一电子设备,该第一电子设备例如为图2所示的第一客户端,向任务调度系统提交调度资源申请审批请求,然后任务调度系统可以接收到对应项目的申请审批请求,并在数据库中新建对应的资源审批记录。
进一步地,任务调度系统创建对应的项目审批记录之后,还可以向系统管理员发送提示信息,从而系统管理员可以基于其对应的第二电子设备,即图2中所示的第一客户端,向任务调度系统发送查询新建的资源审批记录的请求,从而任务调度系统可以从数据库中查询资源审批记录详情,并确定查询结果,将查询结果反馈给第二客户端。具体的,当系统管理员审批通过之后,可以基于第二客户端向任务调度系统发送该申请资源审批通过的指示信息,从而任务调度系统基于该指示信息,对该项目进行调度资源的分配,例如更新项目调度资源,并绑定执行节点。当任务调度系统确定调度资源分配完成之后,可以向第二客户端和第一客户端分别反馈对应的信息,以提示该调度资源申请已审批完成。
需要说明的是,在实际实施过程中,当项目调度资源不足时,项目管理员可以基于第一客户端继续向任务调度系统申请调度资源,当系统管理员基于其对应的第二客户端审批通过后,该项目的调度资源将自动生效。
为进一步说明本发明实施例提供的任务调度方法的方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本发明实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本发明实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的应用环境)。
以下结合图4所示的方法流程图对本发明实施例中任务调度方法进行说明,图4所示的各步骤可以由如图1所示的计算机设备执行。在具体实施过程中,该计算机设备可以是服务器,例如是个人计算机、大中型计算机、计算机集群,等等。
步骤401:对各个项目对应的目标调度资源中各个任务执行定时触发,将各个任务定时触发后所对应的执行信息生成执行记录,并将执行记录记录于数据库中本地消息列表。
在本发明实施例中,在对各个项目对应的目标调度资源中各个任务执行定时触发之前,任务调度系统可以接收申请第一项目对应的调度资源的第一请求,其中,该第一请求中携带有第一项目的项目类型,然后可以基于项目类型和预设分配规则,确定第一项目对应的目标调度资源。
在本发明实施例中,第一项目可以是任意一个项目,且任务调度系统可以同时接收多个项目的申请调度资源的第一请求,然后任务调度系统可以基于项目的项目类型划分节点资源,自动将任务执行器注册到指定项目下,具体的,任务执行器可以基于预设分配规则或系统管理员对应的操作所产生的信息,对各个项目进行调度资源的分配,即各个项目对应的目标调度资源中的任务被各自项目下的任务执行器执行,从而保证项目之间任务的执行互不影响。可见,在本发明实施例中,可以高效且快速的实现对各个项目对应的目标调度资源中的任务的调度的处理,且各个项目对应的目标调度资源中的任务的调度处理独立执行。
在本发明实施例中,任务调度系统可以采用但不限于以下步骤来确定第一项目对应的目标调度资源:
步骤a:确定任务调度系统的调度资源池的使用率是否达到预设阈值。
在本申请实施例中,可以对任务调度系统的调度资源池的使用率进行判断,具体的,可以确定任务调度系统的调度资源池的使用率是否达到预设阈值。其中,预设阈值可以基于实际实施对应确定,本发明实施例对此不做限定。例如预设阈值为90%。
具体的,当任务调度系统确定其对应的调度资源池的使用率达到预设阈值时,则可以向项目管理员对应的第一电子设备发送预警信息,提示超过调度资源个数的任务会发生排队进入等待队列,等待前面的任务执行结束后再依次运行。
具体的,当任务调度系统确定其对应的调度资源池的使用率未达到预设阈值时,执行步骤b:基于预设分配规则,确定项目类型对应的调度资源比例。
在本发明实施例中,项目类型例如可以为生产环境类型、开发调试类型、测试验收类型等等;
预设分配规则例如为第一规则,具体的生产环境类型、开发调试类型、测试验收类型,各自对应分配的资源个数为任务调度系统的调度资源池总数的10%,1%,1%。需要说明的是,预设分配规则可以基于实际实施中项目的类型对应确定,本发明实施例对此不做限定。
步骤c:基于调度资源比例和调度资源池,确定为第一项目分配的目标调度资源。
例如,假设任务调度系统调度资源池存在1000个调度资源,且均未被申请使用,若第一项目的项目类型为生产环境类型,依据前述第一规则确定第一项目分配100个调度资源;若第一项目的项目类型为开发调试类型,则为第一项目分配10个调度资源;若第一项目的项目类型为测试验收类型,则为第一项目分配10个调度资源。
又如,假设任务调度系统调度资源池存在1000个调度资源,且已申请700个调度资源,未申请300个调度资源,则第一项目的项目类型为生产环境类型,则确定为第一项目分配30个调度资源;若第一项目的项目类型为开发调试类型,则确定为第一项目分配3个调度资源;若第一项目的项目类型为测试验收类型,则确定为第一项目分配3个调度资源。
在本发明实施例中,当任务调度系统调度资源池使用率达到第一阈值时,该第一阈值例如为70%,任务调度系统可以向系统管理员对应使用的第二电子设备发送提示信息,提示任务调度系统调度资源池需要进行扩容。
在本发明实施例中,任务调度系统还可以接收申请新增项目的调度资源的第二请求,第二请求中携带有新增项目的任务个数,然后可以基于请求和任务调度系统的调度资源池,为新增项目分配对应的新增调度资源。
可见,本发明实施例中还提供了一种为项目分配调度资源的方式,从而丰富确定项目对应的调度资源的实现方式,增强本发明实施例提供的方案的适用性。
在本发明实施例中,当任务调度系统确定各个项目对应的目标调度资源之后,可以对各个项目对应的目标调度资源中各个任务执行定时触发。具体的,任务触发时,可以根据任务的执行信息生成执行记录持久化到数据库,即将执行记录记录于数据库中本地消息列表。此外,还可以将各个任务对应的执行记录中的状态信息初始化为待下发状态。
具体的,执行记录至少包括代码备份信息以及任务的执行状态信息;其中,代码备份信息用于后续步骤中任务执行,任务的执行状态信息用于后续步骤判断是否下发和运行任务数管理。
步骤402:查询本地消息列表中各个任务对应的执行状态信息,得到查询结果;其中,执行状态信息用于指示任一任务是否已下发。
步骤403:当基于查询结果确定本地消息列表中存在待下发的任务时,将待下发的任务发布到各个项目对应的同名消息队列中。
在本发明实施例中,任务调度系统可以为各个项目分别创建各自的消息队列,且该消息队列的名称与各个项目的项目名称相同,为了便于描述,后文中将任务调度系统为任一项目创建的消息队列均称作同名消息队列。
步骤404:当确定待下发的任务已发布至同名消息队列,将执行记录中待下发的任务的执行状态更新为已下发,以及,当确定本地消息列表中的所有任务的执行状态更新为已下发,则确定任务调度完成。
在本发明实施例中,还可以基于查询指定个数任务的轮询触发机制,实现调度资源的管控,这样的方式,当项目申请的调度资源发生变化时,能够即时生效,且该项目之前申请的调度资源被修改前处于未执行排队的任务,会被立即执行。
在本发明实施例中,任务调度系统可以确定预设查询周期,从而基于预设查询周期定时查询有调度资源分配的各个项目,其中,每个项目根据目标调度资源所对应的任务个数,在数据库中查询相同个数的任务,如果任务的执行状态为待下发,则将任务下发至项目同名的消息队列。具体的,预设查询周期可以基于实际实施对应确定,本发明实施例中对此不做限定。
具体的,当确定当前时刻处于预设查询周期时,查询数据库中本地消息列表中各个任务对应的执行状态信息;基于各个任务对应的执行状态信息,获得查询结果;其中,查询结果包括待下发的任务的个数和已下发但未结束的任务的个数。
例如,预设查询周期为1分钟,当确定当前时刻即9点27分30秒属于27-28分钟这一查询周期时,则可以查询数据库中本地消息列表中各个任务对应的执行状态信息,假设确定存在3个任务,且任务1的执行状态信息为待下发,任务2的执行状态信息为待下发,任务3的执行状态信息为已下发但未结束,则可以确定查询结果为待下发的任务为2个,已下发但未结束的任务为1个。
具体的,若某次查询时,基于查询到的本地消息列表,确定任务列表中包含待下发任务,说明此时下发任务未达到上限,因此待下发的任务会被下发,且在下发后将该待下发的任务的执行状态更新为已下发状态;如果查询到的本地消息列表中所记录的任务的执行状态信息都为已下发,说明此时下发任务已经达到上限,并且任务还在运行,因此不会有新的任务下发。
在本发明实施例中,当确定查询结果在预设时长内一直为空,或者,查询结果中待下发任务的个数在预设时长内小于目标调度资源对应的任务个数,向任务调度系统发送第一提示信息;第一提示信息用于提示任务调度系统对空闲资源进行调度处理。其中,预设时长可以基于实际实施情况对应确定,例如为预设查询周期对应的时长的2倍等,本发明实施例中对此不做限定。
在本发明实施例中,当执行记录中任一任务的执行状态更新为已下发后,将本地消息列表中任一任务对应的记录删除,这样的方式,可以确保下发过的任务不会被再次下发。
请参阅图5,图5为本发明实施例中待执行任务下发的示意图。可见,定时任务每次查询时,由于本地消息列表中仅存储了待下发任务和已下发但未结束的任务的执行记录,因此,查询结果仅包含待下发任务和已下发但未结束的任务的个数,不会包含已下发并执行结束的任务,从而确保每个项目能按分配的任务个数运行任务。
很显然,当服务宕机重启或服务间网络超时等异常情况下,任务的执行记录不会更新为已下发,因此当定时任务再次查询时,能够从数据库查询到该任务执行记录,并将该任务重新下发。
请参阅图6,图6为本发明实施例中执行任务的示意图。具体的,任务调度系统中可能包含多个项目对应的同名消息队列,每个队列包含多个任务执行节点。在实际实施过程中,项目管理员可以根据实际需要申请需要,基于第一电子设备新建任意个数的项目,从而当任务调度系统对新建项目分配到目标调度资源时,可以为每个项目自动分配指定个数的任务执行节点,且分配的执行节点订阅至项目同名的队列下,从而可以处理与项目对应的目标调度资源对应的按任务。可见,可以基于此实现项目级别节点组的创建和灵活调整。
需要说明的是,在本发明实施例中,本地消息列表中的消息队列为点对点消费模式。例如,以kafka为例,相同项目的执行节点消费者需要指定唯一的GroupId,也就是说,一条消息发布后,只会被一个消费者消费,从而可以保证一个任务快照发布后,只能被一个执行节点执行。
基于同一发明构思,本发明实施例提供了一种用于任务调度装置,该任务调度装置能够实现前述的任务调度方法对应的功能。该任务调度装置可以是硬件结构、软件模块、或硬件结构加软件模块。该任务调度装置可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图7所示,该任务调度装置包括:处理单元701、查询单元702、下发单元703以及更新单元704,其中:
处理单元701,用于对各个项目对应的目标调度资源中各个任务执行定时触发,将所述各个任务定时触发后所对应的执行信息生成执行记录,并将所述执行记录记录于数据库中本地消息列表;其中,所述执行记录至少包括代码备份信息以及任务的执行状态信息;
查询单元702,用于查询所述本地消息列表中各个任务对应的执行状态信息,得到查询结果;其中,所述执行状态信息用于指示任一所述任务是否已下发;
下发单元703,用于当基于查询结果确定所述本地消息列表中存在待下发的任务时,将所述待下发的任务发布到所述各个项目对应的同名消息队列中;
更新单元704,用于当确定所述待下发的任务已发布至所述同名消息队列,将所述执行记录中所述待下发的任务的执行状态更新为已下发,以及,当确定所述本地消息列表中的所有任务的执行状态更新为已下发,则确定任务调度完成。
在一种可能的实施方式中,在对各个项目对应的目标调度资源中各个任务执行定时触发之前,所述处理单元701还用于:
接收申请第一项目对应的调度资源的第一请求,所述第一请求中携带有第一项目的项目类型;
基于所述项目类型和预设分配规则,确定所述第一项目对应的目标调度资源。
在一种可能的实施方式中,所述查询单元702,具体用于:
确定预设查询周期;
当确定当前时刻处于所述预设查询周期时,查询所述数据库中本地消息列表中各个任务对应的执行状态信息;
基于所述各个任务对应的执行状态信息,获得查询结果;其中,所述查询结果包括待下发的任务的个数和已下发但未结束的任务的个数。
在一种可能的实施方式中,所述装置还包括删除单元,用于:
当所述执行记录中任一任务的执行状态更新为已下发后,将所述本地消息列表中所述任一任务对应的记录删除。
在一种可能的实施方式中,在查询所述数据库中本地消息列表中的待下发任务的个数之后,所述装置还包括提示单元,用于:
当确定所述查询结果在预设时长内一直为空,或者,所述查询结果中待下发任务的个数在所述预设时长内小于所述目标调度资源对应的任务个数,向所述任务调度系统发送第一提示信息;所述第一提示信息用于提示任务调度系统对空闲资源进行调度处理。
在一种可能的实施方式中,所述处理单元701,具体用于:
确定所述任务调度系统的调度资源池的使用率是否达到预设阈值;
当确定所述使用率未达到所述预设阈值时,则基于所述预设分配规则,确定项目类型对应的调度资源比例;
基于所述调度资源比例和所述调度资源池,确定为所述第一项目分配的目标调度资源。
在一种可能的实施方式中,在对各个项目对应的目标调度资源中各个任务执行定时触发之前,所述处理单元701还用于:
接收申请新增项目的调度资源的第二请求,所述第二请求中携带有所述新增项目的任务个数;
基于所述请求和所述任务调度系统的调度资源池,为所述新增项目分配对应的新增调度资源。
前述的任务调度方法的实施例涉及的各步骤的所有相关内容均可以援引到本发明实施例中的任务调度装置所对应的功能模块的功能描述,在此不再赘述。
本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个控制器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
基于同一发明构思,本发明实施例提供一种计算机设备,请参见图8所示,该计算机设备包括至少一个处理器801,以及与至少一个处理器连接的存储器802,本发明实施例中不限定处理器801与存储器802之间的具体连接介质,图8中是以处理器801和存储器802之间通过总线800连接为例,总线800在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线800可以分为地址总线、数据总线、控制总线等,为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。此外,任务调度装置还包括通信接口803,用于接收或发送数据。
在本发明实施例中,存储器802存储有可被至少一个处理器801执行的指令,至少一个处理器801通过执行存储器802存储的指令,可以执行前述的任务调度方法中所包括的步骤。
其中,处理器801是计算机设备的控制中心,可以利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器802内的指令以及调用存储在存储器802内的数据,计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。
可选的,处理器801可包括一个或多个处理单元,处理器801可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器801中。在一些实施例中,处理器801和存储器802可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器801可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器802可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器802是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器801进行设计编程,可以将前述实施例中介绍的任务调度方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的任务调度方法的步骤,如何对处理器801进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,该存储介质存储有计算机程序,当该计算机程序被处理器执行实现如前述的任务调度方法的步骤。
在一些可能的实施方式中,本发明提供的任务调度方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在控制计算机设备上运行时,所述程序代码用于使该控制计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的任务调度方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种任务调度方法,其特征在于,应用于任务调度系统,所述方法包括:
对各个项目对应的目标调度资源中各个任务执行定时触发,将所述各个任务定时触发后所对应的执行信息生成执行记录,并将所述执行记录记录于数据库中本地消息列表;其中,所述执行记录至少包括代码备份信息以及任务的执行状态信息;
查询所述本地消息列表中各个任务对应的执行状态信息,得到查询结果;其中,所述执行状态信息用于指示任一所述任务是否已下发;
当基于查询结果确定所述本地消息列表中存在待下发的任务时,将所述待下发的任务发布到所述各个项目对应的同名消息队列中;
当确定所述待下发的任务已发布至所述同名消息队列,将所述执行记录中所述待下发的任务的执行状态更新为已下发,以及,当确定所述本地消息列表中的所有任务的执行状态更新为已下发,则确定任务调度完成。
2.如权利要求1所述的方法,其特征在于,在对各个项目对应的目标调度资源中各个任务执行定时触发之前,所述方法还包括:
接收申请第一项目对应的调度资源的第一请求,所述第一请求中携带有第一项目的项目类型;
基于所述项目类型和预设分配规则,确定所述第一项目对应的目标调度资源。
3.如权利要求1或2所述的方法,其特征在于,查询所述数据库中本地消息列表中各个任务对应的执行状态信息,包括:
确定预设查询周期;
当确定当前时刻处于所述预设查询周期时,查询所述数据库中本地消息列表中各个任务对应的执行状态信息;
基于所述各个任务对应的执行状态信息,获得查询结果;其中,所述查询结果包括待下发的任务的个数和已下发但未结束的任务的个数。
4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述执行记录中任一任务的执行状态更新为已下发后,将所述本地消息列表中所述任一任务对应的记录删除。
5.如权利要求1或2所述的方法,其特征在于,在查询所述数据库中本地消息列表中的待下发任务的个数之后,所述方法还包括:
当确定所述查询结果在预设时长内一直为空,或者,所述查询结果中待下发任务的个数在所述预设时长内小于所述目标调度资源对应的任务个数,向所述任务调度系统发送第一提示信息;所述第一提示信息用于提示任务调度系统对空闲资源进行调度处理。
6.如权利要求2所述的方法,其特征在于,基于所述项目类型和预设分配规则,确定所述第一项目对应的目标调度资源,包括:
确定所述任务调度系统的调度资源池的使用率是否达到预设阈值;
当确定所述使用率未达到所述预设阈值时,则基于所述预设分配规则,确定项目类型对应的调度资源比例;
基于所述调度资源比例和所述调度资源池,确定为所述第一项目分配的目标调度资源。
7.如权利要求1所述的方法,其特征在于,在对各个项目对应的目标调度资源中各个任务执行定时触发之前,所述方法还包括:
接收申请新增项目的调度资源的第二请求,所述第二请求中携带有所述新增项目的任务个数;
基于所述请求和所述任务调度系统的调度资源池,为所述新增项目分配对应的新增调度资源。
8.一种任务调度装置,其特征在于,应用于任务调度系统,所述装置包括:
处理单元,用于对各个项目对应的目标调度资源中各个任务执行定时触发,将所述各个任务定时触发后所对应的执行信息生成执行记录,并将所述执行记录记录于数据库中本地消息列表;其中,所述执行记录至少包括代码备份信息以及任务的执行状态信息;
查询单元,用于查询所述本地消息列表中各个任务对应的执行状态信息,得到查询结果;其中,所述执行状态信息用于指示任一所述任务是否已下发;
下发单元,用于当基于查询结果确定所述本地消息列表中存在待下发的任务时,将所述待下发的任务发布到所述各个项目对应的同名消息队列中;
更新单元,用于当确定所述待下发的任务已发布至所述同名消息队列,将所述执行记录中所述待下发的任务的执行状态更新为已下发,以及,当确定所述本地消息列表中的所有任务的执行状态更新为已下发,则确定任务调度完成。
9.一种计算机设备,其特征在于,所述计算机设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111122183.0A CN113886040A (zh) | 2021-09-24 | 2021-09-24 | 一种任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111122183.0A CN113886040A (zh) | 2021-09-24 | 2021-09-24 | 一种任务调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113886040A true CN113886040A (zh) | 2022-01-04 |
Family
ID=79006521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111122183.0A Pending CN113886040A (zh) | 2021-09-24 | 2021-09-24 | 一种任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886040A (zh) |
-
2021
- 2021-09-24 CN CN202111122183.0A patent/CN113886040A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582466B (zh) | 一种定时任务执行方法、分布式服务器集群及电子设备 | |
WO2020211579A1 (zh) | 一种基于分布式批量处理系统的处理方法、装置及系统 | |
CA3000422C (en) | Workflow service using state transfer | |
CN110489213B (zh) | 一种任务处理方法及处理装置、计算机系统 | |
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CN111722928A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN112162852A (zh) | 一种多架构cpu节点的管理方法、装置及相关组件 | |
CN110599148A (zh) | 集群数据处理方法、装置、计算机集群及可读存储介质 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN115617497A (zh) | 线程处理方法、调度组件、监测组件、服务器和存储介质 | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
CN114629960A (zh) | 资源调度方法、装置、系统、设备、介质和程序产品 | |
CN113157411A (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN109992415B (zh) | 一种容器调度方法及调度系统 | |
CN113886040A (zh) | 一种任务调度方法及装置 | |
CN116089040A (zh) | 业务流程的调度方法及其装置、电子设备及存储介质 | |
CN112866314B (zh) | 分布式主从系统中从节点的切换方法、主节点设备和存储介质 | |
CN114692585A (zh) | 表服务处理方法及系统 | |
CN114675954A (zh) | 任务调度方法及装置 | |
CN112988340A (zh) | 一种任务调度方法、装置及系统 | |
CN113032128B (zh) | 一种多任务的控制方法、装置、电子设备及存储介质 | |
CN115827255B (zh) | 一种用于集中器的应用资源自适应分配管理方法及系统 | |
CN117376373B (zh) | 元数据操作请求的处理方法、装置、设备及存储介质 | |
CN117251277A (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 |