CN115357352A - 分布式异步任务调度方法、装置、计算机设备、存储介质 - Google Patents
分布式异步任务调度方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN115357352A CN115357352A CN202210932591.0A CN202210932591A CN115357352A CN 115357352 A CN115357352 A CN 115357352A CN 202210932591 A CN202210932591 A CN 202210932591A CN 115357352 A CN115357352 A CN 115357352A
- Authority
- CN
- China
- Prior art keywords
- task
- processed
- tasks
- dependent
- processing
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种分布式异步任务调度方法、装置、计算机设备、存储介质和计算机程序产品。本申请能够避免读取数据时频繁跳跃地从存储空间中读取,同时,存储空间中存储的数据时有序的,因此能够使用高性能算法等进行数据的读取和写入,大大提高读写性能,实现了在对异步任务进行调度处理的同时降低IO瓶颈,提高数据并发量。该方法包括:从有序存储结构拉取待处理任务,判断待处理任务是否具有依赖任务;若是,则查询依赖任务的处理状态;根据依赖任务的处理状态,将待处理任务调度至执行节点或上述有序存储结构中处理。
Description
技术领域
本申请涉及分布式数据处理技术领域,特别是涉及一种分布式异步任务调度方法、系统、计算机设备、存储介质。
背景技术
随着互联网业务规模的扩大,出现了分布式计算技术。传统的业务往往采用集中式计算,即一个应用或一个系统的业务逻辑往往采用单点服务器或者集中于某一节点上的服务器集群处理即可,但随着企业级应用规模的不断扩大,传统的集中式计算已经无法满足当前企业级应用高并发的业务特点,为提高企业应用的处理效率,存在需要将任务分配给分布在不同节点上的服务器同时处理的情况,从而可以节省整体计算时间,提高任务处理效率。
然而,目前普遍采用的分布式计算通常只能对子任务之间没有依赖关系的业务(即异步任务)进行分布式处理,而缺乏对有依赖关系的任务的计算支持。
发明内容
基于此,有必要针对上述技术问题,提供一种分布式异步任务调度方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种分布式异步任务调度方法。所述方法包括:
从有序存储结构拉取待处理任务;
判断所述待处理任务是否具有依赖任务;
若是,则查询所述依赖任务的处理状态;
根据所述依赖任务的处理状态,将所述待处理任务调度至执行节点或所述有序存储结构中处理。
在其中一个实施例中,所述查询所述依赖任务的处理状态,包括:
从高速存储空间中获取所述依赖任务的任务状态参数;
根据所述任务状态参数判断所述依赖任务的处理状态。
在其中一个实施例中,所述从高速存储空间中获取所述依赖任务的任务状态参数,包括:
若所述高速存储空间中没有存储所述任务状态参数,则从预设数据库中查询所述依赖任务的任务状态参数。
在其中一个实施例中,所述根据所述依赖任务的处理状态,将所述待处理任务调度至执行节点或所述有序存储结构中处理,包括:
在所述依赖任务的处理状态为全部执行成功的情况下,将所述待处理任务调度至所述执行节点中执行,并将执行结果保存在预设数据库中。
在其中一个实施例中,所述根据所述依赖任务的处理状态,将所述待处理任务调度至执行节点或所述有序存储结构中处理,包括:
在所述依赖任务的处理状态为未全部执行成功的情况下,将所述待处理任务返回至所述有序存储结构中存储。
在其中一个实施例中,所述判断所述待处理任务是否具有依赖任务之后,所述方法还包括:
若否,则执行所述待处理任务。
在其中一个实施例中,所述执行所述待处理任务之后,所述方法包括:
判断所述待处理任务是否执行成功;
若是,则将执行成功结果保存至预设数据库中。
在其中一个实施例中,所述待处理任务有多个;所述判断所述待处理任务是否执行成功之后,所述方法包括:
若是,则将多个所述待处理任务的执行成功结果批量保存至所述预设数据库中。
在其中一个实施例中,所述方法还包括:
若否,则获取所述待处理任务的重试次数配置信息;
若所述重试次数配置信息表征所述待处理任务无可重试次数上限,则将所述待处理任务返回至所述有序存储结构中。
在其中一个实施例中,所述方法还包括:
若所述重试次数配置信息表征所述待处理任务预设有重试次数上限,则获取所述待处理任务的实际重试次数;
若所述待处理任务的实际重试次数已达到所述重试次数上限,则将所述待处理任务未执行成功的结果保存至所述预设数据库中。
在其中一个实施例中,所述方法还包括:
若所述待处理任务的实际重试次数未达到所述重试次数上限,则将所述待处理任务返回至所述有序存储结构中,同时,更新所述实际重试次数。
在其中一个实施例中,所述待处理任务包括具有有向无环图结构的任务。
第二方面,本申请还提供了一种分布式医疗任务调度方法,所述方法包括:
从有序存储结构拉取待处理医疗任务;
判断所述待处理医疗任务是否具有依赖任务;
若是,则查询所述依赖任务的处理状态;其中,所述待处理医疗任务包括待分析医疗诊断任务;所述依赖任务包括医疗影像处理任务;
根据所述医疗影像处理任务的处理状态,将所述待分析医疗诊断任务调度至执行节点或所述有序存储结构中处理。
第三方面,本申请还提供了一种分布式异步任务调度系统,所述系统包括有序存储结构和服务器节点;其中,
所述有序存储结构,用于存储待处理任务;
所述服务器节点,用于从所述有序存储结构拉取所述待处理任务;判断所述待处理任务是否具有依赖任务;若是,则查询所述依赖任务的处理状态;根据所述依赖任务的处理状态,将所述待处理任务调度至执行节点或所述有序存储及结构中处理。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述分布式异步任务调度方法实施例中的任意步骤。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述分布式异步任务调度方法实施例中的任意步骤。
上述分布式异步任务调度方法、装置、计算机设备和存储介质,通过从有序存储结构拉取待处理任务,判断待处理任务是否具有依赖任务;若是,则查询依赖任务的处理状态;根据依赖任务的处理状态,将待处理任务调度至执行节点或上述有序存储结构中处理。在应用程序运行过程中,存在依赖关系的任务在被处理时,需要上一个任务处理完成后,才能开始下一个任务的处理,其中,应用程序的进程在等待任务或等待数据的过程就是一个阻塞的状态,尤其在高并发场景下,阻塞状态越严重,超出了IO(Input/Output,输入输出)吞吐量,这就造成了IO瓶颈。本申请采用有序存储结构存储异步任务(即具有依赖关系的任务),其中的有序存储结构是指将数据按照某些字段培训后,连续写入存储空间(例如磁盘)中,能够避免读取数据时频繁跳跃地从存储空间中读取,同时,存储空间中存储的数据时有序的,因此能够使用高性能算法(例如二分法查找)等进行数据的读取和写入,大大提高读写性能,实现了在对异步任务进行调度处理的同时降低IO瓶颈,提高数据并发量。
附图说明
图1为一个实施例中分布式异步任务调度方法的应用环境图;
图2为一个实施例中分布式异步任务调度方法的流程示意图;
图3为另一个实施例中分布式异步任务调度方法的流程示意图;
图4为又一个实施例中分布式异步任务调度方法的流程示意图;
图5为一个实施例中分布式异步任务调度系统的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的分布式异步任务调度方法,可以应用于如图1所示的应用环境中。其中,终端101通过网络与服务器102进行通信。数据存储系统可以存储服务器102需要处理的数据。数据存储系统可以集成在服务器102上,也可以放在云上或其他网络服务器上。其中,终端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种分布式异步任务调度方法,以该方法应用于图1中的服务器102为例进行说明,包括以下步骤:
步骤S201,从有序存储结构拉取待处理任务;
其中,有序存储结构是指将数据按照某些字段排序后存储的存储空间,例如消息队列。待处理任务可以是线程将要处理的任务。
具体地,线程从有序存储结构中按照顺序拉取待处理任务。其中的线程也可以至调度器或调度中心。
步骤S202,判断待处理任务是否具有依赖任务。
其中,依赖任务是指有依赖关系的任务,若该待处理任务需要依赖于其他任务执行成功后才能开始执行,这这种任务具有依赖任务,也就是说,只要前一个任务执行完毕,才能执行该待处理任务,则称该待处理任务具有依赖任务,它的前一个任务或者前多个任务被称为依赖任务。
具体地,通过预设的参数表来判断每个任务是否被执行成功,这个桉树表中可以有时间参数、任务执行状态参数等,例如通过任务执行状态参数来判断任务是否被执行成功。当线程获取一个待处理任务后,可以通过参数表知道待处理任务的前一个任务(也就是依赖任务),
步骤S203,若是,则查询依赖任务的处理状态。
具体地,线程通过前一个任务或前多个任务(也就是依赖任务)的参数表中的参数状况判断该依赖任务是否被执行成功。
步骤S204,根据依赖任务的处理状态,将待处理任务调度至执行节点或有序存储结构中处理。
其中,执行节点是指调度器之外的其他线程或其它终端节点。
具体地,根据依赖任务的处理状态决定待处理任务的执行方式,例如,若依赖任务被执行成功,则将待处理任务分配至空闲的执行节点(例如空闲线程或空闲的终端节点)进行执行,若依赖任务尚未执行完成,则将上述待处理任务分配至上述有序存储结构(例如消息队列)中继续排队等候。
上述实施例,通过从有序存储结构拉取待处理任务,判断待处理任务是否具有依赖任务;若是,则查询依赖任务的处理状态;根据依赖任务的处理状态,将待处理任务调度至执行节点或上述有序存储结构中处理。在应用程序运行过程中,存在依赖关系的任务在被处理时,需要上一个任务处理完成后,才能开始下一个任务的处理,其中,应用程序的进程在等待任务或等待数据的过程就是一个阻塞的状态,尤其在高并发场景下,阻塞状态越严重,超出了IO(Input/Output,输入输出)吞吐量,这就造成了IO瓶颈。本实施例采用有序存储结构存储异步任务(即具有依赖关系的任务),其中的有序存储结构是指将数据按照某些字段培训后,连续写入存储空间(例如磁盘)中,能够避免读取数据时频繁跳跃地从存储空间中读取,同时,存储空间中存储的数据时有序的,因此能够使用高性能算法(例如二分法查找)等进行数据的读取和写入,大大提高读写性能,实现了在对异步任务进行调度处理的同时降低IO瓶颈,提高数据并发量。
在一实施例中,上述步骤S203中的查询依赖任务的处理状态,包括:从高速存储空间中获取依赖任务的任务状态参数;根据任务状态参数判断待处理任务的处理状态。
其中,高速存储空间是指存取速度较高的存储空间,例如Redis缓存数据库。
具体地,由于高速存储空间中存储有关于每个任务的执行参数状态表,因此从高速存储空间中获取依赖任务的任务状态参数,判断该依赖任务是否被执行成功,从而得到依赖任务的处理状态。
上述实施例,通过采用高速存储空间记录并存储每项任务的处理状态,能够为判断每项任务的处理状态提供可靠、快速的查询方式,尤其是在有大量依赖任务需要查询时,能够通过高速存储来判断所有依赖任务是否全部执行成功,提高处理速度,在高并发场景下进一步降低阻塞,降低IO瓶颈。
在一实施例中,上述从高速存储空间中获取依赖任务的任务状态参数,包括:若高速存储空间中没有存储任务状态参数,则从预设数据库中查询依赖任务的任务状态参数。
具体地,如图3所示,图3展示了分布式异步任务调度方法的任务流程图,当查询依赖任务的处理状态时,首先从高速存储空间中查询是否存储有依赖任务的任务状态参数,若高速存储空间中没有存储该任务状态参数,则从预设数据库中查询所述依赖任务的任务状态参数,如果预设数据库中没查到,则将空记录存入高速存储空间中。
上述实施例,通过高速存储空间与预设数据库结合起来查询依赖任务的处理状态,尤其适合在高并发场景下,减少阻塞,降低IO瓶颈。
在一实施例中,上述步骤S204包括:在依赖任务的处理状态为全部执行成功的情况下,将待处理任务调度至执行节点中执行,并将执行结果保存在预设数据库中。
具体地,如图3所示,在待处理任务的依赖任务全部执行成功的前提下,将待处理任务调度至执行节点中处理,并将执行结果保存在预设数据库中,其中,执行节点为空闲线程或空闲的终端节点。
上述实施例,通过在判断依赖任务的处理状态为全部执行成功的情况下,将待处理任务分配至空闲的执行节点中,能够提高任务处理效率,使得各个任务能够分布式执行。
在一实施例中,上述步骤S204包括:在依赖任务的处理状态为未全部执行成功的情况下,将待处理任务返回至有序存储结构中存储。
具体地,如图3所示,在待处理任务的依赖任务未全部执行成功的前提下,即只要有一项依赖任务未完成,则将待处理任务调度至有序存储结构中排队等候执行。
上述实施例,通过在判断依赖任务的处理状态未全部执行成功的情况下,将待处理任务分配至有序存储结构中,以便下一次被拉取并执行。
在一实施例中,上述步骤S202之后,所述方法还包括:若否,则执行待处理任务。
具体地,如图3所示,从有序存储结构中拉取待处理任务后,若判断该待处理任务为异步任务(即没有依赖任务),则立即执行该待处理任务。
上述实施例,在判断待处理任务没有依赖任务后,立即执行该待处理任务,实现了对异步任务的支持。
在一实施例中,上述若否,则执行待处理任务之后,所述方法包括:判断待处理任务是否执行成功;若是,则将执行成功结果保存至预设数据库中。
具体地,如图3所示,若判断待处理任务执行成功,则将执行成功结果保存至预设数据库中。可选地,在保存执行成功结果时可实现批量保存。
上述实施例,通过将待处理任务的执行成功结果保存至预设数据库,为后续查询这些任务的执行状态提供数据基础。
在一实施例中,上述待处理任务有多个,上述判断待处理任务是否执行成功之后,该方法包括:若是,则将多个待处理任务的执行成功结果批量保存至所述预设数据库中。
具体地,如图3所示,若待处理任务有多个,则判断待处理任务执行成功,则将多个执行成功结果同时保存至预设数据库中,即在保存执行成功结果时实现批量保存。
上述实施例,通过批量保存任务执行结果,提高了多任务处理的处理效率。
在一实施例中,上述方法还包括:若否,则获取所述待处理任务的重试次数配置信息;若重试次数配置信息表征待处理任务无可重试次数上限,则将待处理任务返回至所述有序存储结构中。
其中,重试次数配置信息是该待处理任务中自带的参数,用于表示该任务在后续执行过程中是否需要重试,若没有被提前预设,则为默认的参数。
具体地,如图3所示,若判断上述待处理任务未执行成功,则获取待处理任务的重试次数配置信息;若重试次数配置信息表征为默认的参数(例如该重试次数配置信息为0),则待处理任务无可重试次数上限,将待处理任务返回至所述有序存储结构中,等待下一次被拉取。
上述实施例,通过默认的重试次数参数信息判断待处理任务是否需要再次执行,若不需要再次执行,则扔回到有序存储结构中,优化了系统处理流程,提高了系统处理效率。
在一实施例中,上述方法还包括:若重试次数配置信息表征待处理任务预设有重试次数上限,则获取待处理任务的实际重试次数;若待处理任务的实际重试次数已达到重试次数上限,则将待处理任务未执行成功的结果保存至预设数据库中。
具体地,若上述重试次数配置信息大于0,即表示该待处理任务预设有重试次数上限,此时,从预设数据库中获取该待处理任务的已执行次数(即实际重试次数),若实际重试次数与上述重试次数上限相等,则将该待处理任务扔回到有序存储结构中等待下一次重试,直到实际重试次数与上述重试次数上限相等。在扔回到有序存储结构的同时,将该待处理任务的重试次数配置信息加1。若待处理任务的实际重试次数已达到重试次数上限,则将待处理任务未执行成功的结果保存至预设数据库中,并记录日志。可选地,系统支持批量保存或批量记录日志。
上述实施例,通过默认的重试次数参数信息判断待处理任务是否需要再次执行,优化了系统处理流程,提高了系统处理效率。
在一实施例中,上述待处理任务还可以是DAG(Direct Acyclic Graph,有向无环图)结构的任务。
其中,DAG有向无环图.它的特点是节点有先后次序,可以有分叉,但还不会有环.DAG常用于数据处理,事务规划,最优路径查找,数据压缩,DAG可用于实现任务调度。
具体地,DAG是一种数据结构。在计算机的处理中,将所有的任务简化为数据来存储,每个任务不是单独的1234,而是数据结构,可以通过数据结构中的参数关系判断该任务是否为DAG,然后根据其执行状态对其进行调度。简单地说,DAG就是待处理任务的一种类型。
对于DAG,计算机的执行逻辑是:先将所有任务构建成图(图包含顶点和边,根据顶点和边的关系检测图中是否有环,边是否有方向,从而判断所有任务中是否包含有向无环图);然后,调度器开始工作,流程是遍历所有任务中的任务集合,找出待执行的任务集合(具有DAG数据结构的任务),放到一个List中,再串行执行(若考虑性能,可优化为并行执行)。若List为空,说明所有任务都已执行,则这一次任务调度结束。
上述实施例,提供了对于DAG类型的任务调度支持。
在一实施例中,如图4所示,还提供了一种分布式医疗任务调度方法,包括:
步骤S401,从有序存储结构拉取待处理医疗任务。
具体地,该待处理医疗任务可以是对某一病例的抽取,以待进一步分析处理,或是将医疗报告同步上传至上一级医疗结构。
步骤S402,判断待处理医疗任务是否具有依赖任务;
具体地,例如在远程诊断业务中,下级医疗机构需要同步影像和报告到上级医疗机构,并且只有在同步影像完成后,才能同步报告(只有报告是没有任何意义的),因此,同步报告这一任务是具有依赖任务的,即依赖于同步影响这一任务是否执行完成。
步骤S403,若是,则查询依赖任务的处理状态;其中,待处理医疗任务包括待分析医疗诊断任务;依赖任务包括医疗影像处理任务;
具体地,若该待处理任务包括依赖任务,则查询上述依赖任务的处理状态。
步骤S404,根据医疗影像处理任务的处理状态,将待分析医疗诊断任务调度至执行节点或有序存储结构中处理。
具体地,根据上述医疗影像处理任务的执行状态,判断对上述待分析医疗诊断任务的处理模式,例如,若医疗影像处理任务已上传成功,则执行上述待分析医疗诊断任务的上传,并将上传成功结果保存至数据库。若上述医疗影像处理任务没有依赖任务,则直接执行该医疗影像处理任务,并将上传成功结果保存至数据库;若执行未成功,则查询待分析医疗诊断任务的重试次数,若无上限,则继续等待下一次执行,若有重试上限,则判断实际重试次数是否达到上述重试上限,没达到,则继续等待下一次执行,若达到重试上限,则记录执行结果,流程结束。
上述实施例,通过在医疗任务处理中使用分布式异步任务调度方法,提高了医疗任务处理的自动化效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的分布式异步任务调度方法的分布式异步任务调度系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个分布式异步任务调度系统实施例中的具体限定可以参见上文中对于分布式异步任务调度方法的限定,在此不再赘述。
在一实施例中,如图5所示,还提供了一种分布式异步任务调度系统500,该系统包括有序存储结构501和服务器节点502;其中,
有序存储结构501,用于存储待处理任务;
服务器节点502,用于从有序存储结构拉取待处理任务;判断待处理任务是否具有依赖任务;若是,则查询依赖任务的处理状态;根据依赖任务的处理状态,将待处理任务调度至执行节点或有序存储及结构中处理。
在其中一个实施例中,上述服务器节点502,进一步用于:
从高速存储空间中获取所述依赖任务的任务状态参数;根据所述任务状态参数判断所述依赖任务的处理状态。
在其中一个实施例中,上述服务器节点502,进一步用于:
若所述高速存储空间中没有存储所述任务状态参数,则从预设数据库中查询所述依赖任务的任务状态参数。
在其中一个实施例中,上述服务器节点502,进一步用于:
在所述依赖任务的处理状态为全部执行成功的情况下,将所述待处理任务调度至所述执行节点中执行,并将执行结果保存在预设数据库中。
在其中一个实施例中,上述服务器节点502,进一步用于:
在所述依赖任务的处理状态为未全部执行成功的情况下,将所述待处理任务返回至所述有序存储结构中存储。
在其中一个实施例中,上述服务器节点502,进一步用于:若否,则执行所述待处理任务。
在其中一个实施例中,上述服务器节点502,进一步用于:
判断所述待处理任务是否执行成功;若是,则将执行成功结果保存至预设数据库中。
在其中一个实施例中,所述待处理任务有多个;上述服务器节点502,进一步用于:
若是,则将多个所述待处理任务的执行成功结果批量保存至所述预设数据库中。
在其中一个实施例中,上述服务器节点502,进一步用于:
若否,则获取所述待处理任务的重试次数配置信息;若所述重试次数配置信息表征所述待处理任务无可重试次数上限,则将所述待处理任务返回至所述有序存储结构中。
在其中一个实施例中,上述服务器节点502,进一步用于:
若所述重试次数配置信息表征所述待处理任务预设有重试次数上限,则获取所述待处理任务的实际重试次数;若所述待处理任务的实际重试次数已达到所述重试次数上限,则将所述待处理任务未执行成功的结果保存至所述预设数据库中。
在其中一个实施例中,上述服务器节点502,进一步用于:
若所述待处理任务的实际重试次数未达到所述重试次数上限,则将所述待处理任务返回至所述有序存储结构中,同时,更新所述实际重试次数。
在其中一个实施例中,所述待处理任务包括具有有向无环图结构的任务。
上述分布式异步任务调度系统中的各个节点可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储任务执行结果。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分布式异步任务调度方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述分布式异步任务调度方法实施例中的各步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述分布式异步任务调度方法实施例中的各步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述分布式异步任务调度方法实施例中的各步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种分布式异步任务调度方法,其特征在于,所述方法包括:
从有序存储结构拉取待处理任务;
判断所述待处理任务是否具有依赖任务;
若是,则查询所述依赖任务的处理状态;
根据所述依赖任务的处理状态,将所述待处理任务调度至执行节点或所述有序存储结构中处理。
2.根据权利要求1所述的方法,其特征在于,所述查询所述依赖任务的处理状态,包括:
从高速存储空间中获取所述依赖任务的任务状态参数;
根据所述任务状态参数判断所述依赖任务的处理状态。
3.根据权利要求2所述的方法,其特征在于,所述从高速存储空间中获取所述依赖任务的任务状态参数,包括:
若所述高速存储空间中没有存储所述任务状态参数,则从预设数据库中查询所述依赖任务的任务状态参数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述依赖任务的处理状态,将所述待处理任务调度至执行节点或所述有序存储结构中处理,包括:
在所述依赖任务的处理状态为全部执行成功的情况下,将所述待处理任务调度至所述执行节点中执行,并将执行结果保存在预设数据库中;
在所述依赖任务的处理状态为未全部执行成功的情况下,将所述待处理任务返回至所述有序存储结构中存储。
5.根据权利要求1所述的方法,其特征在于,所述待处理任务有多个;所述执行所述待处理任务之后,所述方法包括:
判断所述待处理任务是否执行成功;
若是,则将多个所述待处理任务的执行成功结果批量保存至所述预设数据库中;
若否,则获取所述待处理任务的重试次数配置信息;
若所述重试次数配置信息表征所述待处理任务无可重试次数上限,则将所述待处理任务返回至所述有序存储结构中;
若所述重试次数配置信息表征所述待处理任务预设有重试次数上限,则获取所述待处理任务的实际重试次数;
若所述待处理任务的实际重试次数已达到所述重试次数上限,则将所述待处理任务未执行成功的结果保存至所述预设数据库中。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述待处理任务的实际重试次数未达到所述重试次数上限,则将所述待处理任务返回至所述有序存储结构中,同时,更新所述实际重试次数。
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述待处理任务包括具有有向无环图结构的任务。
8.一种分布式医疗任务调度方法,其特征在于,所述方法包括:
从有序存储结构拉取待处理医疗任务;
判断所述待处理医疗任务是否具有依赖任务;
若是,则查询所述依赖任务的处理状态;其中,所述待处理医疗任务包括待分析医疗诊断任务;所述依赖任务包括医疗影像处理任务;
根据所述医疗影像处理任务的处理状态,将所述待分析医疗诊断任务调度至执行节点或所述有序存储结构中处理。
9.一种分布式异步任务调度系统,其特征在于,所述系统包括有序存储结构和服务器节点;其中,
所述有序存储结构,用于存储待处理任务;
所述服务器节点,用于从所述有序存储结构拉取所述待处理任务;判断所述待处理任务是否具有依赖任务;若是,则查询所述依赖任务的处理状态;根据所述依赖任务的处理状态,将所述待处理任务调度至执行节点或所述有序存储及结构中处理。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210932591.0A CN115357352A (zh) | 2022-08-04 | 2022-08-04 | 分布式异步任务调度方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210932591.0A CN115357352A (zh) | 2022-08-04 | 2022-08-04 | 分布式异步任务调度方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357352A true CN115357352A (zh) | 2022-11-18 |
Family
ID=84033080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210932591.0A Pending CN115357352A (zh) | 2022-08-04 | 2022-08-04 | 分布式异步任务调度方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357352A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483584A (zh) * | 2023-05-26 | 2023-07-25 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的任务处理方法、装置、电子设备和存储介质 |
-
2022
- 2022-08-04 CN CN202210932591.0A patent/CN115357352A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483584A (zh) * | 2023-05-26 | 2023-07-25 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的任务处理方法、装置、电子设备和存储介质 |
CN116483584B (zh) * | 2023-05-26 | 2024-05-03 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的任务处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372723B2 (en) | Efficient query processing using histograms in a columnar database | |
US9712646B2 (en) | Automated client/server operation partitioning | |
US9971827B2 (en) | Subscription for integrating external data from external system | |
WO2017016421A1 (zh) | 一种集群中的任务执行方法及装置 | |
US20110153662A1 (en) | Managing queries | |
CN108280150B (zh) | 一种分布式异步业务分发方法及系统 | |
US11132383B2 (en) | Techniques for processing database tables using indexes | |
US20060161923A1 (en) | Task management in a data processing environment having multiple hardware entities | |
US20150112934A1 (en) | Parallel scanners for log based replication | |
CN109614270A (zh) | 基于Hbase的数据读写方法、装置、设备及存储介质 | |
CN115357352A (zh) | 分布式异步任务调度方法、装置、计算机设备、存储介质 | |
CN116595096A (zh) | 一种基于湖仓一体的元数据同步方法、装置、设备及介质 | |
CN115729687A (zh) | 任务调度方法、装置、计算机设备、存储介质 | |
CN112000703B (zh) | 数据入库处理方法、装置、计算机设备和存储介质 | |
CN101796493B (zh) | 信息检索系统、信息检索方法及程序 | |
CN112783925B (zh) | 分页检索方法和装置 | |
US20230236882A1 (en) | Event scheduler sub-system for aggregation, prioritization, and serialization of software application events | |
CN114020434A (zh) | 一种任务处理方法、装置、电子设备及存储介质 | |
CN117194002A (zh) | 一种应用于分布式计算引擎的处理方法及装置 | |
CN117216009A (zh) | 文件处理方法、装置、设备、存储介质和计算机程序产品 | |
CN116860403A (zh) | 异步任务生成方法和异步任务处理方法 | |
CN117492943A (zh) | 数据处理方法及装置 | |
CN115422199A (zh) | 多维统计数据的处理方法、装置及计算机设备 | |
CN115221182A (zh) | 一种文件合并方法、系统、存储介质及电子设备 | |
CN114201491A (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 |