CN115904669A - 任务调度方法、系统、电子设备及计算机可读存储介质 - Google Patents
任务调度方法、系统、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115904669A CN115904669A CN202211712273.XA CN202211712273A CN115904669A CN 115904669 A CN115904669 A CN 115904669A CN 202211712273 A CN202211712273 A CN 202211712273A CN 115904669 A CN115904669 A CN 115904669A
- Authority
- CN
- China
- Prior art keywords
- task
- database
- queue
- task scheduling
- instruction
- 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
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种任务调度方法、系统、电子设备及计算机可读存储介质,涉及任务调度领域,应用于任务调度平台中的主服务节点,任务调度平台还包括用于存储任务指令的数据库和至少一个用于下发任务指令的队列,任务调度方法包括:在当前查询周期,查询各个队列中的任务指令对应的任务数量;判断是否存在任务数量小于预设数量的目标队列;若是,从数据库中读取任务指令,并将任务指令写入目标队列,以便目标队列将任务指令下发到任务调度平台中对应的工作服务节点。本申请能够避免因对数据库频繁读取所造成的网络通信故障以及数据丢失等问题,保证大量任务存在时的高频读写的稳定性。
Description
技术领域
本申请涉及任务调度领域,特别涉及任务调度方法、系统、电子设备及计算机可读存储介质。
背景技术
Dolphinscheduler是一个分布式去中心化、易扩展的可视化DAG(DirectedAcyclic Graph,有向无环图)工作流任务调度平台。现有的Dolphinscheduler的整体架构图参照图1所示,其任务分发流程如下:UI层将任务指令发送到API层,API层将任务指令持久化存储在传统的关系型数据库DB中,然后主服务节点Master server扫描关系型数据库中的任务指令,并将扫描到的任务指令发送至工作服务节点Worker server。在现有的dolphinscheduler的持久化存储的结构设计下,执行少量任务时可以满足稳定性的要求,当大量任务并发执行时,Master server的监控线程需要频繁读写关系型数据库以保证任务指令的正常下发,而频繁读写数据库会造成网络通信故障以及数据丢失。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本申请的目的是提供一种任务调度方法、系统、电子设备及计算机可读存储介质,能够避免因对数据库频繁读取所造成的网络通信故障以及数据丢失等问题,保证大量任务存在时的高频读写的稳定性。
为解决上述技术问题,本申请提供了一种任务调度方法,应用于任务调度平台中的主服务节点,所述任务调度平台还包括用于存储任务指令的数据库和至少一个用于下发所述任务指令的队列,所述任务调度方法包括:
在当前查询周期,查询各个所述队列中的所述任务指令对应的任务数量;
判断是否存在所述任务数量小于预设数量的目标队列;
若是,从所述数据库中读取所述任务指令,并将所述任务指令写入所述目标队列,以便所述目标队列将所述任务指令下发到所述任务调度平台中对应的工作服务节点。
可选的,所述判断是否存在所述任务数量小于预设数量的目标队列之后,该任务调度方法还包括:
若判定存在所述目标队列,确定所述目标队列对应的当前指令写入数量;
从所述数据库中读取所述任务指令的过程包括:
从所述数据库中读取所述当前指令写入数量的所述任务指令。
可选的,所述判断是否存在所述任务数量小于预设数量的目标队列之后,该任务调度方法还包括:
若存在多个所述目标队列,确定各个所述目标队列的读取优先级;
从所述数据库中读取所述任务指令的过程包括:
按所述读取优先级由高到低的顺序,从所述数据库中读取每一所述目标队列对应的所述任务指令。
可选的,从所述数据库中读取所述任务指令的过程包括:
从所述数据库中读取设有待执行标识的任务指令。
可选的,所述任务调度方法还包括:
获取各个所述工作服务节点反馈的所述任务指令的响应信息,将所述响应信息存储到预设暂存空间;
当满足存储条件,将所述预设暂存空间中存储的各个所述响应信息存储到所述数据库。
可选的,所述当满足存储条件,将所述预设暂存空间中存储的各个所述响应信息存储到所述数据库之前,所述任务调度方法还包括:
判断各个所述队列的所述任务数量是否均大于预设数量;
若是,判定满足存储条件;
若否,判定不满足所述存储条件。
可选的,所述获取各个所述工作服务节点反馈的所述任务指令的响应信息之后,所述任务调度方法还包括:
判断各个所述响应信息是否存在满足告警条件的目标响应信息;
若是,基于所述目标响应信息生成告警信息并提示。
为解决上述技术问题,本申请还提供了一种任务调度系统,应用于任务调度平台中的主服务节点,所述任务调度平台还包括用于存储任务指令的数据库和至少一个用于下发所述任务指令的队列,所述任务调度系统包括:
查询模块,用于在当前查询周期,查询各个所述队列中的所述任务指令对应的任务数量;
第一判断模块,用于判断是否存在所述任务数量小于预设数量的目标队列,若是,触发调度模块;
所述调度模块,用于从所述数据库中读取所述任务指令,并将所述任务指令写入所述目标队列,以便所述目标队列将所述任务指令下发到所述任务调度平台中对应的工作服务节点。
为解决上述技术问题,本申请还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上文任意一项所述的任务调度方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任意一项所述的任务调度方法的步骤。
本申请提供了一种任务调度方法,在任务调度平台中设置至少一个用于下发任务指令的队列,从数据库中读取的任务指令先分批写入各个队列中,由队列进行任务指令的下发,当队列对应的任务数量小于一定值时再去读取数据库,避免因对数据库频繁读取所造成的网络通信故障以及数据丢失等问题,保证大量任务存在时的高频读写的稳定性。本申请还提供了一种任务调度系统、电子设备及计算机可读存储介质,具有和上述任务调度方法相同的有益效果。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的一种任务调度平台的结构示意图;
图2为本申请所提供的一种任务调度平台的结构示意图;
图3为本申请所提供的一种任务调度方法的步骤流程图;
图4为本申请所提供的一种任务调度系统的结构示意图。
具体实施方式
本申请的核心是提供一种任务调度方法、系统、电子设备及计算机可读存储介质,能够避免因对数据库频繁读取所造成的网络通信故障以及数据丢失等问题,保证大量任务存在时的高频读写的稳定性。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
第一方面,为便于理解本申请所提供的一种任务调度方法,下面对该任务调度方法所适用的任务调度平台进行说明,请参照图2所示,图2为本申请所提供的一种任务调度平台的结构示意图,该任务调度平台包括UI层、API层、多个主服务节点Master server、多个工作服务节点Worker server、Zookeeper集群、数据库、告警模块以及至少一个队列queue,图2中示例性地示出了三个队列queue、三个主服务节点Master server和三个工作服务节点Worker server,可以理解的是,队列queue、主服务节点Master server、工作服务节点Worker server的个数根据实际工程需要选择即可,本实施例在此不作具体的限定。
其中,Master server采用分布式无中心设计理念,Master server主要负责DAG任务切分、任务提交监控,并同时监听其它Master server和Worker server的健康状态;Worker server也采用分布式无中心设计理念,Worker server主要负责任务的执行和提供日志服务。Worker server服务启动时向Zookeeper集群注册临时节点,并维持心跳,Zookeeper是一种开源的分布式协调系统,Master server和/或Worker server注册到Zookeeper中,实现Master集群和Worker集群无中心,并使用Zookeeper分布式锁来选举其中的一台Master server或Worker server为管理者来执行对应的任务。
对本申请所提供的一种任务调度方法进行详细说明,请参照图3,图3为本申请所提供的一种任务调度方法的步骤流程图,该任务调度方法可以通过上述任务调度平台中的任意一个主服务节点Master server实现,该任务调度方法包括:
S101:在当前查询周期,查询各个队列中的任务指令对应的任务数量;
可以理解的是,在UI层的页面发起任务指令到API层,API层解析UI层下发的任务指令后,将任务指令持久化的存储在数据库中。主服务节点中创建有监控线程,该监控线程用于从数据库中批量读取任务指令,将任务指令写入对应的队列中,并监控队列中的任务指令的下发情况,其中,主服务节点中可创建一个监控线程,通过一个监控线程监控各个队列,也可以创建多个监控线程,各个监控线程一一对应监控各个队列,作为一种可选的实施例,每一监控线程对应的查询周期相同,作为另一种可选的实施例,每一监控线程对应的查询周期不同。队列中写入任务指令后,是按照先入先出的顺序将任务指令依次下发给对应的工作服务节点的,因此,在每一查询周期查询到的队列中的任务指令的数量是变化的,但考虑到有些任务包括的任务指令较多,在相邻的查询周期,存在队列中的任务数量不变的情况,为了避免批量执行的任务过多时频繁读取数据库,该监控线程在每一查询周期,首先查询各个队列的任务指令对应的任务数量,以便后续在队列中的任务数量较少时,再从数据库中读取任务指令,查询周期可以根据实际的任务数量确定。
其中,一个任务包括至少一个任务指令,每个任务指令带有与其所属任务对应的任务标识信息,可以理解的是,同一个任务包括的所有任务指令带有的任务标识信息都相同,考虑到存在某一队列中的任务指令对应多个任务的情况,可根据该队列中不同的任务标识信息的数量确定该队列对应的任务数量。
举例说明,假设某一队列中有m个任务指令,其中,n个任务指令的任务标识信息均为a,m-n个任务指令的任务标识信息均为b,则该队列对应的任务数量为2。
S102:判断是否存在任务数量小于预设数量的目标队列,若是,执行S103;
S103:从数据库中读取任务指令,并将任务指令写入目标队列,以便目标队列将任务指令下发到任务调度平台中对应的工作服务节点。
可以理解的是,为了避免批量执行的任务过多时频繁读取数据库带来的问题,在当前查询周期获取到各个队列对应的任务数量后,判断各个队列对应的任务数量是否小于预设数量,将任务数量小于预设数量的队列确定为当前查询周期的目标队列,监控线程从数据库中批量读取任务指令,并将该批任务指令写入目标队列中,如果当前查询周期中获取到的各个队列对应的任务数量均大于或等于预设数量,此时该监控线程则挂起,不做任何处理,等待下一查询周期。
其中,监控线程每次从数据库中批量读取的任务指令的数量可以根据实际工程需要设置,如可根据任务调度平台的硬件处理能力或者动态计算得到,本申请在此不作限定。
可见,本实施例中在任务调度平台中设置至少一个用于下发任务指令的队列,从数据库中读取的任务指令先分批写入各个队列中,由队列进行任务指令的下发,当队列对应的任务数量小于一定值时再去读取数据库,避免因对数据库频繁读取所造成的网络通信故障以及数据丢失等问题,保证大量任务存在时的高频读写的稳定性。
在上述实施例的基础上:
作为一种可选的实施例,判断是否存在任务数量小于预设数量的目标队列之后,该任务调度方法还包括:
若判定存在目标队列,确定目标队列对应的当前指令写入数量;
从数据库中读取任务指令的过程包括:
从数据库中读取当前指令写入数量的任务指令。
可以理解的是,每个队列预设有目标指令写入数量,目标指令写入数量为该队列可写入的指令数量的最大值。当判定当前查询周期存在任务数量小于预设数量的目标队列,确定该目标队列中的当前任务指令数量,可将目标指令写入数量和当前任务指令数量的差确定为该目标队列的当前指令写入数量,从数据库中读取当前指令写入数量的任务指令写入该目标队列中。
举例说明,假设某一目标队列的目标指令写入数量为p,在当前查询周期,该目标队列中的任务指令数量为q,则该目标队列的目标指令写入数量为p-q,从数据库中读取p-q个任务指令写入该目标队列中。
作为一种可选的实施例,判断是否存在任务数量小于预设数量的目标队列之后,该任务调度方法还包括:
若存在多个目标队列,确定各个目标队列的读取优先级;
从数据库中读取任务指令的过程包括:
按读取优先级由高到低的顺序,从数据库中读取每一目标队列对应的任务指令。
考虑到存在同一查询周期有多个目标队列的情况,为了避免多个队列对应的多个监控线程同时读取数据库中的任务指令,保证一个查询周期仅有一个监控线程从数据库中读取数据,当存在多个目标队列时,本实施例先确定各个目标队列的读取优先级,读取优先级可以是预先为各个队列设置好的,也可以是根据各个队列的当前任务数量实时确定的,比如任务数量较少的队列读取优先级高,然后按照读取优先级从高到低的顺序,从数据库中读取每一目标队列对应的任务指令,其中,监控线程每一次从数据库中读取的任务指令的数量可以根据上一实施例获取的当前指令写入数量确定。
作为一种可选的实施例,从数据库中读取任务指令的过程包括:
从数据库中读取设有待执行标识的任务指令。
具体的,用户可以在UI层页面上输出某一任务的执行命令,此时,数据库中存储的该任务对应的所有任务指令均包括待执行标识,监控线程在当前查询周期若监控到存在目标队列,则按照该目标队列对应的当前指令写入数量从数据库读取对应数量的设有待执行标识的任务指令,从而保证任务的正常执行。
作为一种可选的实施例,任务调度方法还包括:
获取各个工作服务节点反馈的任务指令的响应信息,将响应信息存储到预设暂存空间;
当满足存储条件,将预设暂存空间中存储的各个响应信息存储到数据库。
可以理解的是,当主服务节点将任务指令下发给对应的工作服务节点后,工作服务节点会向主服务节点反馈任务指令的响应信息,响应信息包括但不限于执行成功、执行失败等状态信息,还包括执行日志等。主服务节点将接收到的反馈信息存储到redis的预设暂存空间,在满足存储条件时,再将预设暂存空间中存储的所有反馈信息写入数据库中做持久化处理,从而实现读写分离,保证了大量任务存在时的高频读写的稳定性。
其中,存储条件可以为达到新的存储周期,也可以为存储的数据量大于预设数据量或者其他条件,本实施例在此不做具体的限定。
作为一种可选的实施例,当满足存储条件,将预设暂存空间中存储的各个响应信息存储到数据库之前,任务调度方法还包括:
判断各个队列的任务数量是否均大于预设数量;
若是,判定满足存储条件;
若否,判定不满足存储条件。
考虑到本申请中监控线程从数据库中读取任务指令的触发条件为各个队列中存在任务数量小于预设数量的目标队列,那么本实施例可将各个队列的任务数量均大于预设数量作为将响应信息存储到数据库中的触发条件,由于各个队列中的任务数量均大于预设数量,则监控线程不会从数据库中读取任务指令,此时,将预设暂存空间中存储的各个响应信息存储到数据库,可进一步实现读写分离,保证大量任务存在时的高频读写的稳定性。
作为一种可选的实施例,获取各个工作服务节点反馈的任务指令的响应信息之后,任务调度方法还包括:
判断各个响应信息是否存在满足告警条件的目标响应信息;
若是,基于目标响应信息生成告警信息并提示。
具体的,主服务节点在获取到各个工作服务节点反馈的响应信息后,会判断是否存在满足告警条件的目标响应信息,如果存在,则将基于目标响应信息生成的告警信息推送给告警线程,以便告警线程及时控制进行页面告警提示,提高任务调度平台的安全性和可靠性。
综上所述,本申请所提供的方案为解决生产环境中批量执行的任务过多时,大量任务需要频繁读写数据库,对数据库造成的读写压力,导致数据错误丢失,脏读幻读等异常问题,基于本申请的方案,可以显著提升dolphinscheduler平台在生产环境中的稳定性,通过批处理可以明显降低大量集中的处理请求,适用于任务大量读写,以及监控信息的获取,优化了传统dolphinscheduler平台在持久化层的拓扑架构,使用了批处理的思想,将任务分批写入,以队列这种数据结构构建的中间层,实现稳定高效的持续写入,还可以根据具体生产环境预设或动态设置写入批次等参数,实现了生产环境的稳定性提升,同时分布式存储相比原生关系型数据库,能更大程度上的保证数据的完整性。
第二方面,请参照图4,图4为本申请所提供的一种任务调度系统的结构示意图,应用于任务调度平台中的主服务节点,任务调度平台还包括用于存储任务指令的数据库和至少一个用于下发任务指令的队列,任务调度系统包括:
查询模块1,用于在当前查询周期,查询各个队列中的任务指令对应的任务数量;
第一判断模块2,用于判断是否存在任务数量小于预设数量的目标队列,若是,触发调度模块3;
调度模块3,用于从数据库中读取任务指令,并将任务指令写入目标队列,以便目标队列将任务指令下发到任务调度平台中对应的工作服务节点。
可以理解的是,在UI层的页面发起任务指令到API层,API层解析UI层下发的任务指令后,将任务指令持久化的存储在数据库中。主服务节点中创建有监控线程,该监控线程用于从数据库中批量读取任务指令,将任务指令写入对应的队列中,并监控队列中的任务指令的下发情况,其中,主服务节点中可创建有一个监控线程,通过一个监控线程监控各个队列,也可以创建多个监控线程,各个监控线程一一对应监控各个队列,作为一种可选的实施例,每一监控线程对应的查询周期相同,作为另一种可选的实施例,每一监控线程对应的查询周期不同。队列中写入任务指令后,是按照先入先出的顺序将任务指令依次下发给对应的工作服务节点的,因此,在每一查询周期查询到的队列中的任务指令的数量是变化的,但考虑到有些任务包括的任务指令较多,在相邻的查询周期,存在队列中的任务数量不变的情况,为了避免批量执行的任务过多时频繁读取数据库,该监控线程在每一查询周期,首先查询各个队列的任务指令对应的任务数量,以便后续在队列中的任务数量较少时,再从数据库中读取任务指令,查询周期可以根据实际的任务数量确定。
其中,一个任务包括至少一个任务指令,每个任务指令带有与其所属任务对应的任务标识信息,可以理解的是,同一个任务包括的所有任务指令带有的任务标识信息都相同,考虑到存在某一队列中的任务指令对应多个任务的情况,可根据该队列中不同的任务标识信息的数量确定该队列对应的任务数量。
可以理解的是,为了避免批量执行的任务过多时频繁读取数据库带来的问题,在当前查询周期获取到各个队列对应的任务数量后,判断各个队列对应的任务数量是否小于预设数量,将任务数量小于预设数量的队列确定为当前查询周期的目标队列,监控线程从数据库中批量读取任务指令,并将该任务指令写入目标队列中,如果当前查询周期中获取到的各个队列对应的任务数量均大于或等于预设数量,此时该监控线程则挂起,不做任何处理,等待下一查询周期。可见,本实施例中在任务调度平台中设置至少一个用于下发任务指令的队列,从数据库中读取的任务指令先分批写入各个队列中,由队列进行任务指令的下发,当队列对应的任务数量小于一定值时再去读取数据库,避免因对数据库频繁读取所造成的网络通信故障以及数据丢失等问题,保证大量任务存在时的高频读写的稳定性。
作为一种可选的实施例,该任务调度系统还包括:
第一确定模块,用于若判定存在目标队列,确定目标队列对应的当前指令写入数量;
从数据库中读取任务指令的过程包括:
从数据库中读取当前指令写入数量的任务指令。
作为一种可选的实施例,该任务调度系统还包括:
第二确定模块,用于若存在多个目标队列,确定各个目标队列的读取优先级;
从数据库中读取任务指令的过程包括:
按读取优先级由高到低的顺序,从数据库中读取每一目标队列对应的任务指令。
作为一种可选的实施例,从数据库中读取任务指令的过程包括:
从数据库中读取设有待执行标识的任务指令。
作为一种可选的实施例,任务调度系统还包括:
存储处理模块,用于获取各个工作服务节点反馈的任务指令的响应信息,将响应信息存储到预设暂存空间,当满足存储条件,将预设暂存空间中存储的各个响应信息存储到数据库。
作为一种可选的实施例,任务调度系统还包括:
第二判断模块,用于判断各个队列的任务数量是否均大于预设数量,若是,判定满足存储条件,若否,判定不满足存储条件。
作为一种可选的实施例,任务调度系统还包括:
第三判断模块,用于判断各个响应信息是否存在满足告警条件的目标响应信息,若是,基于目标响应信息生成告警信息并提示。
第三方面,本申请还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上文任意一个实施例所描述的任务调度方法的步骤。
具体的,存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器执行存储器中保存的计算机程序时,可以实现以下步骤:在当前查询周期,查询各个队列中的任务指令对应的任务数量;判断是否存在任务数量小于预设数量的目标队列;若是,从数据库中读取任务指令,并将任务指令写入目标队列,以便目标队列将任务指令下发到任务调度平台中对应的工作服务节点。
可见,本实施例中在任务调度平台中设置至少一个用于下发任务指令的队列,从数据库中读取的任务指令先分批写入各个队列中,由队列进行任务指令的下发,当队列对应的任务数量小于一定值时再去读取数据库,避免因对数据库频繁读取所造成的网络通信故障以及数据丢失等问题,保证大量任务存在时的高频读写的稳定性。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:若判定存在目标队列,确定目标队列对应的当前指令写入数量;从数据库中读取当前指令写入数量的任务指令。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:若存在多个目标队列,确定各个目标队列的读取优先级;按读取优先级由高到低的顺序,从数据库中读取每一目标队列对应的任务指令。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:从数据库中读取设有待执行标识的任务指令。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:获取各个工作服务节点反馈的任务指令的响应信息,将响应信息存储到预设暂存空间;当满足存储条件,将预设暂存空间中存储的各个响应信息存储到数据库。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:判断各个队列的任务数量是否均大于预设数量;若是,判定满足存储条件;若否,判定不满足存储条件。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:判断各个响应信息是否存在满足告警条件的目标响应信息;若是,基于目标响应信息生成告警信息并提示。
在上述实施例的基础上,作为优选实施方式,该电子设备还包括:
输入接口,与处理器相连,用于获取外部导入的计算机程序、参数和指令,经处理器控制保存至存储器中。该输入接口可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板。
显示单元,与处理器相连,用于显示处理器发送的数据。该显示单元可以为液晶显示屏或者电子墨水显示屏等。
网络端口,与处理器相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
第四方面,本申请还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任意一个实施例所描述的任务调度方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:在当前查询周期,查询各个队列中的任务指令对应的任务数量;判断是否存在任务数量小于预设数量的目标队列;若是,从数据库中读取任务指令,并将任务指令写入目标队列,以便目标队列将任务指令下发到任务调度平台中对应的工作服务节点。
可见,本实施例中在任务调度平台中设置至少一个用于下发任务指令的队列,从数据库中读取的任务指令先分批写入各个队列中,由队列进行任务指令的下发,当队列对应的任务数量小于一定值时再去读取数据库,避免因对数据库频繁读取所造成的网络通信故障以及数据丢失等问题,保证大量任务存在时的高频读写的稳定性。
作为一种可选的实施例,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:若判定存在目标队列,确定目标队列对应的当前指令写入数量;从数据库中读取当前指令写入数量的任务指令。
作为一种可选的实施例,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:若存在多个目标队列,确定各个目标队列的读取优先级;按读取优先级由高到低的顺序,从数据库中读取每一目标队列对应的任务指令。
作为一种可选的实施例,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:从数据库中读取设有待执行标识的任务指令。
作为一种可选的实施例,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:获取各个工作服务节点反馈的任务指令的响应信息,将响应信息存储到预设暂存空间;当满足存储条件,将预设暂存空间中存储的各个响应信息存储到数据库。
作为一种可选的实施例,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:判断各个队列的任务数量是否均大于预设数量;若是,判定满足存储条件;若否,判定不满足存储条件。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其他实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种任务调度方法,其特征在于,应用于任务调度平台中的主服务节点,所述任务调度平台还包括用于存储任务指令的数据库和至少一个用于下发所述任务指令的队列,所述任务调度方法包括:
在当前查询周期,查询各个所述队列中的所述任务指令对应的任务数量;
判断是否存在所述任务数量小于预设数量的目标队列;
若是,从所述数据库中读取所述任务指令,并将所述任务指令写入所述目标队列,以便所述目标队列将所述任务指令下发到所述任务调度平台中对应的工作服务节点。
2.根据权利要求1所述的任务调度方法,其特征在于,所述判断是否存在所述任务数量小于预设数量的目标队列之后,该任务调度方法还包括:
若判定存在所述目标队列,确定所述目标队列对应的当前指令写入数量;
从所述数据库中读取所述任务指令的过程包括:
从所述数据库中读取所述当前指令写入数量的所述任务指令。
3.根据权利要求1所述的任务调度方法,其特征在于,所述判断是否存在所述任务数量小于预设数量的目标队列之后,该任务调度方法还包括:
若存在多个所述目标队列,确定各个所述目标队列的读取优先级;
从所述数据库中读取所述任务指令的过程包括:
按所述读取优先级由高到低的顺序,从所述数据库中读取每一所述目标队列对应的所述任务指令。
4.根据权利要求1所述的任务调度方法,其特征在于,从所述数据库中读取所述任务指令的过程包括:
从所述数据库中读取设有待执行标识的任务指令。
5.根据权利要求1-4任意一项所述的任务调度方法,其特征在于,所述任务调度方法还包括:
获取各个所述工作服务节点反馈的所述任务指令的响应信息,将所述响应信息存储到预设暂存空间;
当满足存储条件,将所述预设暂存空间中存储的各个所述响应信息存储到所述数据库。
6.根据权利要求5所述的任务调度方法,其特征在于,所述当满足存储条件,将所述预设暂存空间中存储的各个所述响应信息存储到所述数据库之前,所述任务调度方法还包括:
判断各个所述队列的所述任务数量是否均大于预设数量;
若是,判定满足存储条件;
若否,判定不满足所述存储条件。
7.根据权利要求5所述的任务调度方法,其特征在于,所述获取各个所述工作服务节点反馈的所述任务指令的响应信息之后,所述任务调度方法还包括:
判断各个所述响应信息是否存在满足告警条件的目标响应信息;
若是,基于所述目标响应信息生成告警信息并提示。
8.一种任务调度系统,其特征在于,应用于任务调度平台中的主服务节点,所述任务调度平台还包括用于存储任务指令的数据库和至少一个用于下发所述任务指令的队列,所述任务调度系统包括:
查询模块,用于在当前查询周期,查询各个所述队列中的所述任务指令对应的任务数量;
第一判断模块,用于判断是否存在所述任务数量小于预设数量的目标队列,若是,触发调度模块;
所述调度模块,用于从所述数据库中读取所述任务指令,并将所述任务指令写入所述目标队列,以便所述目标队列将所述任务指令下发到所述任务调度平台中对应的工作服务节点。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1-7任意一项所述的任务调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任意一项所述的任务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211712273.XA CN115904669A (zh) | 2022-12-29 | 2022-12-29 | 任务调度方法、系统、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211712273.XA CN115904669A (zh) | 2022-12-29 | 2022-12-29 | 任务调度方法、系统、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115904669A true CN115904669A (zh) | 2023-04-04 |
Family
ID=86493915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211712273.XA Pending CN115904669A (zh) | 2022-12-29 | 2022-12-29 | 任务调度方法、系统、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904669A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116362652A (zh) * | 2023-06-01 | 2023-06-30 | 上海仙工智能科技有限公司 | 一种运输分拨任务调度方法及系统、存储介质 |
-
2022
- 2022-12-29 CN CN202211712273.XA patent/CN115904669A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116362652A (zh) * | 2023-06-01 | 2023-06-30 | 上海仙工智能科技有限公司 | 一种运输分拨任务调度方法及系统、存储介质 |
CN116362652B (zh) * | 2023-06-01 | 2023-10-31 | 上海仙工智能科技有限公司 | 一种运输分拨任务调度方法及系统、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108848039B (zh) | 服务器、消息分配的方法及存储介质 | |
CN105786405B (zh) | 一种在线升级方法、装置及系统 | |
JPWO2008146677A1 (ja) | 仮想マシン管理装置、仮想マシン管理方法および仮想マシン管理プログラム | |
CN101968750A (zh) | 计算机系统及其工作方法 | |
CN109257399B (zh) | 云平台应用程序管理方法及管理平台、存储介质 | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
US6968382B2 (en) | Activating a volume group without a quorum of disks in the volume group being active | |
CN102360314A (zh) | 一种数据中心资源管理系统和方法 | |
US11068317B2 (en) | Information processing system and resource allocation method | |
CN111782341B (zh) | 用于管理集群的方法和装置 | |
CN115904669A (zh) | 任务调度方法、系统、电子设备及计算机可读存储介质 | |
CN111464331B (zh) | 一种线程创建的控制方法、系统及终端设备 | |
CN114936173B (zh) | 一种eMMC器件的读写方法、装置、设备和存储介质 | |
CN113658351B (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN113590329A (zh) | 资源处理方法及装置 | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
US10585620B2 (en) | Storage monitoring system for monitoring components in a storage system in a distributed manner | |
CN115905322A (zh) | 业务处理方法、装置、电子设备及存储介质 | |
CN115858499A (zh) | 一种数据库分区处理方法、装置、计算机设备和存储介质 | |
CN115658248A (zh) | 任务调度方法方法、装置、电子设备及存储介质 | |
EP4036751A1 (en) | Method and apparatus for performing modification task, electronic device and readable storage medium | |
CN112884382B (zh) | 云平台的资源配额管理方法、装置、设备以及存储介质 | |
US11301286B2 (en) | System and method for supporting optimization of usage efficiency of resources | |
CN114237858A (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 |