CN115599525A - 一种异步任务的调度方法、装置、设备及存储介质 - Google Patents
一种异步任务的调度方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115599525A CN115599525A CN202211329445.5A CN202211329445A CN115599525A CN 115599525 A CN115599525 A CN 115599525A CN 202211329445 A CN202211329445 A CN 202211329445A CN 115599525 A CN115599525 A CN 115599525A
- Authority
- CN
- China
- Prior art keywords
- asynchronous task
- asynchronous
- executed
- task
- name
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000007246 mechanism Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- 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]
-
- 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/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种异步任务的调度方法、装置、设备及存储介质。该方法包括:获取待执行异步任务队列;从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务;将所述待执行异步任务调度至异步任务执行队列,并为所述待执行异步任务分配线程、资源和反序列化系统总线数据;调用基类方法handler()使所述异步任务执行队列中的异步任务进行任务执行。如此,将所有异步任务注册在待执行异步任务队列中,保证所有异步任务都可以被执行,且通过随机提取异步任务,保证在未设有优先级或未被抢占的前提下,所有异步任务都会被执行,保证异步任务执行的可行性和可靠性,提高异步任务执行的可靠性。
Description
技术领域
本申请涉及任务调度技术领域,特别是涉及一种异步任务的调度方法、装置、设备及存储介质。
背景技术
随着开发领域的发展,责任链模式成为当下开发流程的主流模式之一,责任链模式是指多个处理器(组件)依次处理同一请求,一个请求先经过A处理器处理,再将请求传递给B,B处理完毕后传递给C,依次类推,形成一个链条,每个处理器各自承担自己的处理职责。但是由于开发流程越来越复杂,在开发的过程中并非全都需要按顺序执行,因此在现有技术中提供一种异步任务模式。
其中,异步是相对于同步而言的,同步是所有任务顺序执行,前一个任务执行完毕才会执行后一个任务,而异步任务是指前一个任务提交后,不一定等其执行结束,可以先执行其他任务,前一个任务可以在后面执行,等执行完毕后再调用回调函数即可。
目前,常用的异步任务模式是通过异步开关模块在数据库表中配置异步任务是否开启,用于控制异步任务的启停;通过新增异步任务模块将异步任务需要执行的参数和异步任务类名注册为异步任务,在一定时间后,由异步框架调用异步任务执行;通过异步任务执行设置异步框架立即或一段时间后调用异步任务。但是,这种常用的异步任务模式中的异步任务启停统一控制,不够灵活,同时在多容器运行单元的数目减少后,正在某个多容器运行单元上执行的异步任务不会被其他多容器运行单元抢占,导致这些遗留下的异步任务不会被执行,同时若多容器运行单元启停以后,若服务器名称发生变化,那么就无法恢复这个多容器运行单元上正在执行的异步任务。
发明内容
基于上述问题,本申请提供了一种异步任务的调度方法、装置、设备及存储介质,以实现对异步任务的合理、有效的任务调度。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供一种异步任务的调度方法,所述方法包括:
获取待执行异步任务队列;
从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务;
将所述待执行异步任务调度至异步任务执行队列,并为所述待执行异步任务分配线程、资源和反序列化系统总线数据;
调用基类方法handler()使所述异步任务执行队列中的异步任务进行任务执行。
可选地,在从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务之前,所述方法还包括:
判断所述待执行异步任务队列中是否存在含有本机名称的异步任务;
若存在含有本机名称的异步任务,则判断所述本机名称对应的抢占机器名与发送机器名是否一致;
若所述抢占机器名与所述发送机器名一致,则将所述含有本机名称的异步任务作为待执行异步任务。
可选地,在从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务之前,所述方法还包括:
判断所述待执行异步任务队列中是否存在含有本集群名称的异步任务;
若存在含有本集群名称的异步任务,则判断所述本集群名称与预设集群名称是否一致;
若所述本集群名称与所述预设集群名称一致,则将所述含有本集群名称的异步任务作为待执行异步任务。
可选地,在获取待执行异步任务队列之前,所述方法还包括:
通过SpringBean注册机制,覆盖框架中默认的配置类,在读取数据库配置项结束后,再从配置文件中读取新的数据库配置项。
第二方面,本申请实施例提供一种异步任务的调度装置,所述装置包括:获取模块,待执行异步任务确定模块,调度模块和调度执行模块;
所述获取模块,用于获取待执行异步任务队列;
所述待执行异步任务确定模块,用于从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务;
所述调度模块,用于将所述待执行异步任务调度至异步任务执行队列,并为所述待执行异步任务分配线程、资源和反序列化系统总线数据;
所述调度执行模块,用于调用基类方法handler()使所述异步任务执行队列中的异步任务进行任务执行。
可选地,在执行所述待执行异步任务确定模块之前,所述装置还包括:
第一判断模块,用于判断所述待执行异步任务队列中是否存在含有本机名称的异步任务;
第二判断模块,用于若存在含有本机名称的异步任务,则判断所述本机名称对应的抢占机器名与发送机器名是否一致;
第一任务抢占模块,用于若所述抢占机器名与所述发送机器名一致,则将所述含有本机名称的异步任务作为待执行异步任务。
可选地,在执行所述待执行异步任务确定模块之前,所述装置还包括:
第三判断模块,用于判断所述待执行异步任务队列中是否存在含有本集群名称的异步任务;
第四判断模块,用于若存在含有本集群名称的异步任务,则判断所述本集群名称与预设集群名称是否一致;
第二任务抢占模块,用于若所述本集群名称与所述预设集群名称一致,则将所述含有本集群名称的异步任务作为待执行异步任务。
可选地,在执行所述获取模块之前,所述装置还包括:
读取模块,用于通过SpringBean注册机制,覆盖框架中默认的配置类,在读取数据库配置项结束后,再从配置文件中读取新的数据库配置项。
第三方面,本申请实施例提供一种计算机设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面所述的异步任务的调度方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如第一方面所述的异步任务的调度方法。
相较于现有技术,本申请具有以下有益效果:本申请通过获取待执行异步任务队列;从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务;将所述待执行异步任务调度至异步任务执行队列,并为所述待执行异步任务分配线程、资源和反序列化系统总线数据;调用基类方法handler()使所述异步任务执行队列中的异步任务进行任务执行。其中,将所有异步任务注册在待执行异步任务队列中,保证所有异步任务都可以被执行,且通过随机提取异步任务,保证在未设有优先级或未被抢占的前提下,所有异步任务都会被执行,保证异步任务执行的可行性和可靠性,提高异步任务执行的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种异步任务的调度方法的流程图;
图2为本申请实施例提供的一种异步任务的调度装置的结构示意图。
具体实施方式
正如前文描述,在针对任务调度的研究中发现,目前,常用的异步任务模式是通过异步开关模块在数据库表中配置异步任务是否开启,用于控制异步任务的启停;通过新增异步任务模块将异步任务需要执行的参数和异步任务类名注册为异步任务,在一定时间后,由异步框架调用异步任务执行;通过异步任务执行设置异步框架立即或一段时间后调用异步任务。但是,这种常用的异步任务模式中的异步任务启停统一控制,不够灵活,同时在多容器运行单元的数目减少后,正在某个多容器运行单元上执行的异步任务不会被其他多容器运行单元抢占,导致这些遗留下的异步任务不会被执行,同时若多容器运行单元启停以后,若服务器名称发生变化,那么就无法恢复这个多容器运行单元上正在执行的异步任务。
为了解决上述问题,本申请实施例提供一种异步任务的调度方法。该方法包括:通过获取待执行异步任务队列;从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务;将所述待执行异步任务调度至异步任务执行队列,并为所述待执行异步任务分配线程、资源和反序列化系统总线数据;调用基类方法handler()使所述异步任务执行队列中的异步任务进行任务执行。
如此,将所有异步任务注册在待执行异步任务队列中,保证所有异步任务都可以被执行,且通过随机提取异步任务,保证在未设有优先级或未被抢占的前提下,所有异步任务都会被执行,保证异步任务执行的可行性和可靠性,提高异步任务执行的可靠性。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
其中,在下文中所涉及的“组件”,意指对可复用逻辑的一种封装,通过暴露接口提供功能和业务逻辑供其他人调用,它可以降低整个系统的耦合度,在保持接口不变的情况下替换不同的组件快速完成需求,也可以将不同的组件进行灵活装配完成业务需求的实现。
其中,在下文中所涉及的pod,意指一种组合的多容器运行单元,pod里面包括1个主容器和多个辅助容器,他们共同完成一个特定的功能。容器是一组应用的包装,本身包含了应用所需的所有依赖,它可以在任何操作系统上运行。Pod中主容器和和辅助容器生命周期相同,可以同时被创建和销毁,因此把它们放在一个pod中,可以使他们的交互更加高效。
参见图1,该图为本申请实施例提供的一种异步任务的调度方法的流程图,结合图1所示,本申请实施例提供的异步任务的调度方法,可以包括:
S101:获取待执行异步任务队列。
其中,待执行异步任务队列意指包含有待执行的异步任务的队列。
具体的,当责任链执行到异步组件时,异步框架负责调用异步插件接口,将异步任务注册到待执行异步任务队列(英文代称TH_JOBS_TODO),即可以将异步组件名称、执行次数、执行策略、集群名称、序列化的系统总线数据保存至TH_JOBS_DOING,以备异步框架调度。
其中,将所有异步任务统一放置在同一待执行异步任务队列,可以避免将个别任务搁置,导致无法执行的问题。
S102:从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务。
其中,通过随机提取一条异步任务,可以保证每一条随机任务都可能会被执行,防止在任务执行时中断导致后面的任务一直无法执行。
S103:将所述待执行异步任务调度至异步任务执行队列,并为所述待执行异步任务分配线程、资源和反序列化系统总线数据。
S104:调用基类方法handler()使所述异步任务执行队列中的异步任务进行任务执行。
其中,可以通过调用基类方法handler(),实现异步任务的执行。这里需要说明的是,在开发异步组件时,均需要重写基类的handler()方法,作为异步任务的入口方法。
本申请实施例所提供的异步任务的调度方法,通过将所有异步任务注册在待执行异步任务队列中,保证所有异步任务都可以被执行,且通过随机提取异步任务,保证在未设有优先级或未被抢占的前提下,所有异步任务都会被执行,保证异步任务执行的可行性和可靠性,提高异步任务执行的可靠性。
基于上述实施例提供的异步任务的调度方法,本申请还对在开发模式下的异步任务调度提供一种抢占机制,在一种可实现的实施方式中,在执行步骤S102之前,所述方法还包括:
步骤11:判断所述待执行异步任务队列中是否存在含有本机名称的异步任务。
步骤12:若存在含有本机名称的异步任务,则判断所述本机名称对应的抢占机器名与发送机器名是否一致。
步骤13:若所述抢占机器名与所述发送机器名一致,则将所述含有本机名称的异步任务作为待执行异步任务。
其中,开发模式是传统的云下模式,使用本机注册,本机抢占的机制,所有的异步任务注册到TH_JOBS_TODO表中,在表中的SERVER_SEND字段中写入本机名称,抢占时使用异步组件默认的抢占机制,只有抢占机器名和发送机器名一致时才会抢占。这样作的好处是开发时本级注册的异步任务仅在本机执行,不会被其他机器抢占,便于开发调试。
其中,步骤11~13仅作分不同步骤或区分不同步骤之间的时序关系,因此并未在附图中展示。
基于上述实施例提供的异步任务的调度方法,本申请还对在测试和生产模式下的异步任务调度提供一种抢占机制,在一种可实现的实施方式中,在执行步骤S102之前,所述方法还包括:
步骤21:判断所述待执行异步任务队列中是否存在含有本集群名称的异步任务。
步骤22:若存在含有本集群名称的异步任务,则判断所述本集群名称与预设集群名称是否一致。
步骤23:若所述本集群名称与所述预设集群名称一致,则将所述含有本集群名称的异步任务作为待执行异步任务。
其中,在测试和生产模式下,异步任务运行在云上,随着pod重新部署机器名会动态发生变化,我们在注册异步任务时SERVER_SEND字段写入本集群名称,抢占时我们可以用本集群名称与SERVER_SEND进行比对,相同才会抢占,这样就可以实现集群式抢占,在执行成功后写入到DONE表时,我们也可以通过SERVER_EXEC中的机器名判断出是哪台机器执行了刚才的任务,方便查阅日志。这样做的好处是可以支持云上多集群异步任务抢占,而不是单pod抢占,异步任务可共享集群资源,同时可支持pod数目弹性扩展。
其中,步骤21~23仅作为对不同步骤之间的区分或区分不同步骤之间的时序关系,因此并未在附图中展示。
其中,在实际应用时,为了确定所需要使用的抢占机制,具体可以在pod部署时,通过application.propertities配置文件中的开发模式属性判断当前模式。
基于上述实施例提供的异步任务的调度方法,为了进一步实现对异步任务实现分别启停的需求,在一种可实现的实施方式中,在执行步骤S101之前,所述方法还包括:
通过SpringBean注册机制,覆盖框架中默认的配置类,在读取数据库配置项结束后,再从配置文件中读取新的数据库配置项。
其中,在集群部署时,异步框架通过读取数据库中的所有配置项,并将其写入Properties文件中,如果所有集群对应同一套数据库,则不能实现每个集群对异步任务分别启停的需求,在本申请实施例中通过SpringBean注册机制,覆盖框架中默认的配置类,在读取数据库配置项结束后,再从配置文件中读取新的数据库配置项。
这样就可以通过在不同的配置文件中增加配置项来控制各集群的异步任务启停,实现各集群异步任务启停灵活配置。通过各集群异步任务分别启停,在实际系统生产运维中,如遇复杂项目投产,就可以采用各集群分别投产的方式,即先对一个集群进行新应用部署,待该集群服务启动以后单独进行技术验证,该验证可以执行或不执行异步任务,待验证通过,启动异步任务执行,再依次变更其余集群,投产的同时实现业务不间断。
其中,作为一种可实现的实施方式,如遇集群停止服务或pod重启,正在执行的异步任务将会中断,但无需过于担心,集群启动服务以后,异步调度框架会对中断的异步任务进行恢复,重新执行该任务。恢复执行的原则同样是用本集群名称与SERVER_SEND进行比对,相同则恢复执行。
基于上述实施例提供的一种异步任务的调度方法,本申请实施例另外提供一种异步任务的调度装置,参见图2,该图为本申请实施例提供的一种异步任务的调度装置的结构示意图,结合图2所示,所述装置200可以包括:获取模块201,待执行异步任务确定模块202,调度模块203和调度执行模块204;
所述获取模块201,用于获取待执行异步任务队列;
所述待执行异步任务确定模块202,用于从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务;
所述调度模块203,用于将所述待执行异步任务调度至异步任务执行队列,并为所述待执行异步任务分配线程、资源和反序列化系统总线数据;
所述调度执行模块204,用于调用基类方法handler()使所述异步任务执行队列中的异步任务进行任务执行。
作为一种示例,在执行所述待执行异步任务确定模块202之前,所述装置还包括:
第一判断模块,用于判断所述待执行异步任务队列中是否存在含有本机名称的异步任务;
第二判断模块,用于若存在含有本机名称的异步任务,则判断所述本机名称对应的抢占机器名与发送机器名是否一致;
第一任务抢占模块,用于若所述抢占机器名与所述发送机器名一致,则将所述含有本机名称的异步任务作为待执行异步任务。
作为一种示例,在执行所述待执行异步任务确定模块202之前,所述装置还包括:
第三判断模块,用于判断所述待执行异步任务队列中是否存在含有本集群名称的异步任务;
第四判断模块,用于若存在含有本集群名称的异步任务,则判断所述本集群名称与预设集群名称是否一致;
第二任务抢占模块,用于若所述本集群名称与所述预设集群名称一致,则将所述含有本集群名称的异步任务作为待执行异步任务。
作为一种示例,在执行所述获取模块201之前,所述装置还包括:
读取模块,用于通过SpringBean注册机制,覆盖框架中默认的配置类,在读取数据库配置项结束后,再从配置文件中读取新的数据库配置项。
本申请实施例提供的异步任务的调度装置与上述实施例提供的异步任务的调度方法具有相同的有益效果,因此不再赘述。
本申请实施例还提供了对应的设备以及计算机存储介质,用于实现本申请实施例提供的方案。
其中,所述设备包括存储器和处理器,所述存储器用于存储指令或代码,所述处理器用于执行所述指令或代码,以使所述设备执行本申请任一实施例所述的异步任务的调度方法。
所述计算机存储介质中存储有代码,当所述代码被运行时,运行所述代码的设备实现本申请任一实施例所述的异步任务的调度方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置及设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例所提到的“第一”、“第二”(若存在)等名称中的“第一”、“第二”只是用来做名字标识,并不代表顺序上的第一、第二。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种异步任务的调度方法,其特征在于,所述方法包括:
获取待执行异步任务队列;
从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务;
将所述待执行异步任务调度至异步任务执行队列,并为所述待执行异步任务分配线程、资源和反序列化系统总线数据;
调用基类方法handler()使所述异步任务执行队列中的异步任务进行任务执行。
2.根据权利要求1所述的异步任务的调度方法,其特征在于,在从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务之前,所述方法还包括:
判断所述待执行异步任务队列中是否存在含有本机名称的异步任务;
若存在含有本机名称的异步任务,则判断所述本机名称对应的抢占机器名与发送机器名是否一致;
若所述抢占机器名与所述发送机器名一致,则将所述含有本机名称的异步任务作为待执行异步任务。
3.根据权利要求1所述的异步任务的调度方法,其特征在于,在从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务之前,所述方法还包括:
判断所述待执行异步任务队列中是否存在含有本集群名称的异步任务;
若存在含有本集群名称的异步任务,则判断所述本集群名称与预设集群名称是否一致;
若所述本集群名称与所述预设集群名称一致,则将所述含有本集群名称的异步任务作为待执行异步任务。
4.根据权利要求1所述的异步任务的调度方法,其特征在于,在获取待执行异步任务队列之前,所述方法还包括:
通过SpringBean注册机制,覆盖框架中默认的配置类,在读取数据库配置项结束后,再从配置文件中读取新的数据库配置项。
5.一种异步任务的调度装置,其特征在于,所述装置包括:获取模块,待执行异步任务确定模块,调度模块和调度执行模块;
所述获取模块,用于获取待执行异步任务队列;
所述待执行异步任务确定模块,用于从所述待执行异步任务队列中随机提取一条异步任务,作为待执行异步任务;
所述调度模块,用于将所述待执行异步任务调度至异步任务执行队列,并为所述待执行异步任务分配线程、资源和反序列化系统总线数据;
所述调度执行模块,用于调用基类方法handler()使所述异步任务执行队列中的异步任务进行任务执行。
6.根据权利要求5所述的异步任务的调度装置,其特征在于,在执行所述待执行异步任务确定模块之前,所述装置还包括:
第一判断模块,用于判断所述待执行异步任务队列中是否存在含有本机名称的异步任务;
第二判断模块,用于若存在含有本机名称的异步任务,则判断所述本机名称对应的抢占机器名与发送机器名是否一致;
第一任务抢占模块,用于若所述抢占机器名与所述发送机器名一致,则将所述含有本机名称的异步任务作为待执行异步任务。
7.根据权利要求5所述的异步任务的调度装置,其特征在于,在执行所述待执行异步任务确定模块之前,所述装置还包括:
第三判断模块,用于判断所述待执行异步任务队列中是否存在含有本集群名称的异步任务;
第四判断模块,用于若存在含有本集群名称的异步任务,则判断所述本集群名称与预设集群名称是否一致;
第二任务抢占模块,用于若所述本集群名称与所述预设集群名称一致,则将所述含有本集群名称的异步任务作为待执行异步任务。
8.根据权利要求5所述的异步任务的调度装置,其特征在于,在执行所述获取模块之前,所述装置还包括:
读取模块,用于通过SpringBean注册机制,覆盖框架中默认的配置类,在读取数据库配置项结束后,再从配置文件中读取新的数据库配置项。
9.一种计算机设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-4任一项所述的异步任务的调度方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1-4任一项所述的异步任务的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211329445.5A CN115599525A (zh) | 2022-10-27 | 2022-10-27 | 一种异步任务的调度方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211329445.5A CN115599525A (zh) | 2022-10-27 | 2022-10-27 | 一种异步任务的调度方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599525A true CN115599525A (zh) | 2023-01-13 |
Family
ID=84850326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211329445.5A Pending CN115599525A (zh) | 2022-10-27 | 2022-10-27 | 一种异步任务的调度方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599525A (zh) |
-
2022
- 2022-10-27 CN CN202211329445.5A patent/CN115599525A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN107957903B (zh) | 异步任务调度方法、服务器及存储介质 | |
CN110888743B (zh) | 一种gpu资源使用方法、装置及存储介质 | |
CN107491346B (zh) | 一种应用的任务处理方法、装置及系统 | |
CN111782360A (zh) | 分布式任务调度方法及装置 | |
CN110389843B (zh) | 一种业务调度方法、装置、设备及可读存储介质 | |
US20110067034A1 (en) | Information processing apparatus, information processing method, and information processing program | |
CA2904253C (en) | Computer system using in-service software upgrade | |
CN107479981B (zh) | 一种基于异步调用实现同步调用的处理方法及装置 | |
WO2009089746A1 (fr) | Procédé, dispositif et système de réalisation d'une tâche dans un environnement de grappes | |
CN107179982B (zh) | 一种跨进程调试方法和装置 | |
CN114691321A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN113918336A (zh) | 基于多核CPU的FreeRTOS运行任务方法及装置 | |
US20030018682A1 (en) | Computer system and computer-readable record medium | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
CN108958808A (zh) | 终端启动方法及装置、终端及存储介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN115599525A (zh) | 一种异步任务的调度方法、装置、设备及存储介质 | |
CN111767122A (zh) | 分布式任务调度管理方法和装置 | |
CN114816662A (zh) | 应用于Kubernetes的容器编排方法和系统 | |
CN109951518A (zh) | 一种离线数据同步方法及装置 | |
CN115437766A (zh) | 一种任务处理方法和装置 | |
CN113806055A (zh) | 一种轻量级任务调度方法、系统、装置及存储介质 | |
CN105487847B (zh) | 一种功能发布方法和设备 | |
CN114911538A (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 |