CN112596882A - 一种延时任务调度的方法、设备及系统 - Google Patents
一种延时任务调度的方法、设备及系统 Download PDFInfo
- Publication number
- CN112596882A CN112596882A CN202011565491.6A CN202011565491A CN112596882A CN 112596882 A CN112596882 A CN 112596882A CN 202011565491 A CN202011565491 A CN 202011565491A CN 112596882 A CN112596882 A CN 112596882A
- Authority
- CN
- China
- Prior art keywords
- delay
- task
- delay task
- queue
- execution time
- 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 31
- 230000003111 delayed effect Effects 0.000 title claims description 73
- 230000004044 response Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 9
- 238000011161 development Methods 0.000 abstract description 3
- 238000012423 maintenance Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
与现有技术相比,本申请提供一种延时任务调度的方法、设备及系统,定时扫描延时任务队列,以获取所述延时任务队列中每个延时任务包含的执行时间;将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列;定时扫描延时任务缓存队列,以获取所述延时任务缓存队列中每个延时任务包含的执行时间;将执行时间符合第二预设阈值的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。通过该方法将延时任务调度与延时业务执行分布式部署,支持业务系统的延时任务轻量级接入,即插即用,便于统一维护,并可以有效降低多个业务系统各自部署延时任务时存在开发工作量重复的问题。
Description
技术领域
本申请涉及计算机软件技术领域,尤其涉及一种延时任务调度的技术。
背景技术
现有技术中,业务系统的延时任务是在业务系统部署延时任务,通过调度延时任务,对需延时执行的延时业务进行业务级别的扫描,扫描到到期的延时业务后,再执行该延时业务。
对于多业务系统来说,每个不同的业务系统都需要单独开发、部署延时任务,一方面造成开发、部署的重复工作量,另一方面不易于统一维护、管理,而且,若业务系统因故重启,延时任务不能完成,会造成无法按时执行延时业务的后果。
发明内容
本申请的目的是提供一种延时任务调度的方法、设备及系统,用以解决现有技术中延时任务调度不便于统一管理、维护的技术问题。
根据本申请的一个方面,提供了一种延时任务调度的方法,其中,所述方法包括:
基于第一预设扫描周期,对延时任务队列进行扫描,以获取所述延时任务队列中每个延时任务包含的执行时间,其中,所述延时任务由一个或者多个业务系统基于各自创建的延时业务而生成,并发布至所述延时任务队列;
基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列;
基于第二预设扫描周期,对延时任务缓存队列进行扫描,以获取所述延时任务缓存队列中每个延时任务包含的执行时间;
基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
可选地,其中,所述基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列包括:
基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务复制并发送至延时任务缓存队列,并将所述延时任务队列中所述延时任务的状态设置为处理中。
可选地,其中,所述延时任务还包含:
发布所述延时任务对应的延时业务的业务系统编号;
所述延时任务对应的延时业务类型及编号。
可选地,其中,所述基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务包括:
基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则基于对应的延时任务包含的业务系统编号,将所述延时任务发送至相应的业务系统,以执行与所述延时任务包含的延时业务类型及编号对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
可选地,所述一种延时任务调度的方法还包括:
接收业务系统反馈的与延时任务相应的延时业务执行成功的响应;
调整所述延时任务队列中相应延时任务。
可选地,其中,所述调整所述延时任务队列中相应延时任务包括:
将所述延时任务队列中相应延时任务的状态调整为已完成,并从所述延时任务队列中移出及存档。
可选地,其中,所述延时任务由业务系统根据创建的延时业务发布至所述延时任务队列和/或所述将对应的延时任务发送至相应的业务系统的方式包括:
通过MQ内部通讯中间件;
通过http通讯;
通过客户端长连接。
根据本申请的另一方面,还提供了一种延时任务调度的设备,其中,所述设备包括:
第一装置,用于基于第一预设扫描周期,对延时任务队列进行扫描,以获取所述延时任务队列中每个延时任务包含的执行时间,其中,所述延时任务由一个或者多个业务系统将各自创建的延时业务发布至所述延时任务队列;
第二装置,用于基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列;
第三装置,用于基于第二预设扫描周期,对延时任务缓存队列进行扫描,以获取所述延时任务缓存队列中每个延时任务包含的执行时间;
第四装置,用于基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
可选地,所述一种延时任务调度的设备还包括:
第五装置,用于接收业务系统反馈的与延时任务相应的延时业务执行成功的响应;
第六装置,用于调整所述延时任务队列中相应延时任务。
根据本申请的又一方面,还提供了一种延时任务调度的系统,其中,所述系统包括:
业务系统,用于创建并发布延时业务,并发布所述延时业务对应的延时任务至数据库,其中,所述延时任务包含业务系统编号,延时任务的执行时间,对应的延时业务类型及编号,接收执行时间符合第二预设阈值且业务系统编号匹配的延时任务,执行与延时任务相应的延时业务,完成执行后向数据库发送与延时任务相应的延时业务执行成功的响应;
数据库,用于接收业务系统发布的延时任务,并存储至延时任务队列,基于第一预设扫描周期扫描所述延时任务队列,获取所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列,若执行时间符合第二预设阈值,则将对应的延时任务从所述延时任务缓存队列中发送至相应的业务系统,并删除所述延时任务。
可选地,其中,所述数据库还用于:
接收业务系统反馈的与延时任务相应的延时业务执行成功的响应,并调整所述延时任务队列中相应延时任务。
与现有技术相比,本申请提供一种延时任务调度的方法、设备及系统,定时扫描延时任务队列,以获取所述延时任务队列中每个延时任务包含的执行时间;将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列;定时扫描延时任务缓存队列,以获取所述延时任务缓存队列中每个延时任务包含的执行时间;将执行时间符合第二预设阈值的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。通过该方法将延时任务调度与延时业务执行分布式部署,支持多个业务系统的延时任务轻量级接入,即插即用,便于统一维护,并可以有效降低多个业务系统各自部署延时任务时存在开发工作量重复的问题。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种延时任务调度的方法流程图;
图2示出一个实施例的通过MQ内部通讯中间件实现延时任务调度的一种延时任务调度时序示意图;
图3示出另一个实施例的通过http通讯实现延时任务调度的一种延时任务调度时序示意图;
图4示出再一个实施例的通过客户端长连接实现延时任务调度的一种延时任务调度时序示意图;
图5示出根据本申请另一个方面的一种延时任务调度的设备示意图;
图6示出本申请还一个方面的一种延时任务调度的系统结构示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,设备、系统各模块和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为更进一步阐述本申请所采取的技术手段及取得的效果,下面结合附图及优选实施例,对本申请的技术方案,进行清楚和完整的描述。
图1示出本申请一个方面的一种延时任务的方法流程图,其中,一个实施例的方法包括:
S11基于第一预设扫描周期,对延时任务队列进行扫描,以获取所述延时任务队列中每个延时任务包含的执行时间,其中,所述延时任务由一个或者多个业务系统基于各自创建的延时业务而生成,并发布至所述延时任务队列;
S12基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列;
S13基于第二预设扫描周期,对延时任务缓存队列进行扫描,以获取所述延时任务缓存队列中每个延时任务包含的执行时间;
S15基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
在本申请中,所述方法通过设备1执行,所述设备1为计算机设备和/或云,所述计算机设备包括但不限于个人计算机、笔记本电脑、工业计算机、网络主机、单个网络服务器、多个网络服务器集;所述云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。
在此,所述计算机设备和/或云仅为举例,其他现有的或者今后可能出现的设备和/或资源共享平台如适用于本申请也应包含在本申请的保护范围内,在此,以引用的方式包含于此。
在该实施例中,所述设备1可以是与多个业务系统连接的数据库或缓存系统,部署有一个延时任务队列及一个延时任务缓存队列,用于存放各业务系统发布的未完成的延时任务,其中,每个延时任务由业务系统在创建延时业务时发布。其中,业务系统与设备1连接,在此,对业务系统与设备1之间的连接方式不做限定,如适用于本申请也应包含在本申请的保护范围内。
在所述步骤S11中,所述设备1基于第一预设扫描周期,比如,1分钟,对延时任务队列中的延时任务进行扫描,获取到延时任务队列中每个延时任务包含的执行时间。
继续在该实施例中,在所述步骤S12中,所述设备1根据获取的延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列。
比如,第一预设阈值若设置为与设备1的当前时间比较,5分钟内到期,设备1每分钟扫描一次延时任务队列,则将延时任务队列中执行时间小于等于5分钟的延时任务发送至延时任务缓存队列。
可选地,其中,所述步骤S12包括:
基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务复制并发送至延时任务缓存队列,并将所述延时任务队列中所述延时任务的状态设置为处理中。
其中,设备1不仅将执行任务符合第一预设阈值的延时任务发送至延时任务缓存队列,并且为了确保延时任务能被业务系统成功响应,在确认延时任务被业务系统成功响应之前,还将该延时任务保留在延时任务队列中,并将该延时任务的状态设置为处理中,以区分延时任务队列中还未处理的延时任务。对于状态设置为处理中的延时任务,在每个扫描周期,都会被发送至延时任务缓存队列。
延时任务缓存队列里存放的都是执行时间符合第一预设阈值的延时任务。
继续在该实施例中,在所述步骤S13中,所述设备1基于第二预设扫描周期,比如,1秒钟,对延时任务缓存队列中的延时任务进行扫描,获取到延时任务缓存队列中每个延时任务包含的执行时间。
继续在该实施例中,在所述步骤S15中,所述设备1根据获取的延时任务缓存队列中每个延时任务包含的执行时间,将执行时间符合第二预设阈值的延时任务发送至至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
比如,第二预设阈值若设置为与设备1的当前时间比较,100毫秒内到期,设备1每秒扫描一次延时任务缓存队列,则将延时任务缓存队列中执行时间小于等于100毫秒的延时任务触达发送至与该延时任务对应的业务系统,以让业务系统执行该延时任务对应的延时业务,并从延时任务缓存队列中删除该延时任务。
可选地,其中,所述延时任务还包含:
发布所述延时任务对应的延时业务的业务系统编号;
所述延时任务对应的延时业务类型及编号。
可选地,其中,所述步骤S15包括:
基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则基于对应的延时任务包含的业务系统编号,将所述延时任务发送至相应的业务系统,以执行与所述延时任务包含的延时业务类型及编号对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
可选地,所述一种延时任务调度的方法还包括:
S15(未示出)接收业务系统反馈的与延时任务相应的延时业务执行成功的响应;
S16(未示出)调整所述延时任务队列中相应延时任务。
其中,为了跟进所述延时任务对应的延时业务的执行结果,以调整延时任务队列中的延时任务。
继续上述实施例,在步骤S15中,设备1还接收相应的延时系统反馈的与延时任务相应的延时业务执行成功的响应。
继续上述实施例,在步骤S16中,设备1在接收到相应相应的延时系统反馈的与延时任务相应的延时业务执行成功的响应后,调整延时任务队列中对应的延时任务。
可选地,其中,所述步骤S16包括:
将所述延时任务队列中相应延时任务的状态调整为已完成,并从所述延时任务队列中移出及存档。
其中,设备1将已成功执行的延时业务对应的延时任务的状态调整为已完成,并将该延时任务从延时任务队列移出并存档。
例如,上述实施例的一个示例,电商平台对于用户的网购商品订单,通常会设置30分钟的付款期限,若30分钟内未付款,撤销该订单。撤销订单是一个30分钟延时业务,在业务系统创建撤销订单的同时,会发布一个30分钟后到期的延时任务给到设备1,保存在延时任务队列中。如步骤S11,设备1定时扫描延时任务队列,经过25分钟后,如步骤S12,设备1获取到该延时任务的执行时间符合第一预设阈值,将该延时任务发送至延时任务缓存队列,并在延时任务队列中将该延时任务的状态设置为处理中,如步骤S13,设备1定时扫描延时任务缓存队列,又经过5分钟,如步骤S15,设备1获取到该延时任务的执行时间符合第二预设阈值,则将该延时任务发送至相应的业务系统,以执行与所述延时任务包含的延时业务类型及编号对应的撤销订单,并从所述延时任务缓存队列中删除所述延时任务。在相应的业务系统成功执行该撤销订单后,向设备1反馈成功执行的响应,如步骤S15,设备1接收到该响应,如步骤S16,设备1调整延时任务队列中该延时任务,将该延时任务的状态从处理中调整为已完成,并从延时任务队列中移出并存档。
例如,上述实施例的另一个示例,有一个需要限期完成审批的业务,若超过设定时间,比如25小时,未完成审批,该业务将被撤销,则撤销业务是一个25小时延时业务,在业务系统创建撤销业务的同时,会发布一个25小时后到期的的延时任务给到设备1,保存在延时任务队列中。如步骤S11,设备1定时扫描延时任务队列,经过23小时55分钟后,如步骤S12,设备1获取到该延时任务的执行时间符合第一预设阈值,将该延时任务发送至延时任务缓存队列,并在延时任务队列中将该延时任务的状态设置为处理中,如步骤S13,设备1定时扫描延时任务缓存队列,又经过5分钟,如步骤S15,设备1获取到该延时任务的执行时间符合第二预设阈值,则将该延时任务发送至相应的业务系统,以执行与所述延时任务包含的延时业务类型及编号对应的撤销业务,并从所述延时任务缓存队列中删除所述延时任务。在相应的业务系统成功执行该撤销业务后,向设备1反馈成功执行的响应,如步骤S15,设备1接收到该响应,如步骤S16,设备1调整延时任务队列中该延时任务,将该延时任务的状态从处理中调整为已完成,并从延时任务队列中移出并存档。
可选地,其中,所述延时任务由业务系统根据创建的延时业务发布至所述延时任务队列和/或所述将对应的延时任务发送至相应的业务系统的方式包括:
通过MQ内部通讯中间件;
通过http通讯;
通过客户端长连接。
如图2为一个实施例的通过MQ(MessageQueues,消息队列)内部通讯中间件实现延时任务调度的一种延时任务调度时序示意图,图3为另一个实施例的通过http通讯实现延时任务调度的一种延时任务调度时序示意图,图4为再一个实施例的通过客户端长连接实现延时任务调度的一种延时任务调度时序示意图。
图5示出根据本申请另一个方面的一种延时任务调度的设备示意图,其中,所述设备包括:
第一装置51,用于基于第一预设扫描周期,对延时任务队列进行扫描,以获取所述延时任务队列中每个延时任务包含的执行时间,其中,所述延时任务由一个或者多个业务系统将各自创建的延时业务发布至所述延时任务队列;
第二装置52,用于基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列;
第三装置53,用于基于第二预设扫描周期,对延时任务缓存队列进行扫描,以获取所述延时任务缓存队列中每个延时任务包含的执行时间;
第四装置54,用于基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
在该实施例中,所述设备与设备1相同。
其中,设备1的第一装置51基于第一预设扫描周期,定时对延时任务队列进行扫描,遍历延时任务队列中的每个延时任务,以获取延时任务队列中每个延时任务包含的执行时间,接着设备的1第二装置52基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列,然后设备1的第三装置53基于第二预设扫描周期,定时对延时任务缓存队列进行扫描,,遍历延时任务缓存队列中的每个延时任务,以获取所述延时任务缓存队列中每个延时任务包含的执行时间,最后设备1的第四装置54基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
可选地,所述一种延时任务调度的设备还包括:
第五装置55(未示出),用于接收业务系统反馈的与延时任务相应的延时业务执行成功的响应;
第六装置56(未示出),用于调整所述延时任务队列中相应延时任务。
其中,设备1的第五装置55还接收业务系统反馈的与延时任务相应的延时业务执行成功的响应,设备1的第六装置56调整所述延时任务队列中相应延时任务,具体地,调整延时任务队列中对应延时业务已被成功执行的延时任务的状态为已完成,并从所述延时任务队列中移出并存档。
图6示出本申请还一方面的一种延时任务调度的系统示意图,其中,所述系统包括:
业务系统100,用于创建并发布延时业务,并发布所述延时业务对应的延时任务至数据库,其中,所述延时任务包含业务系统编号,延时任务的执行时间,对应的延时业务类型及编号,接收执行时间符合第二预设阈值且业务系统编号匹配的延时任务,执行与延时任务相应的延时业务,完成执行后向数据库发送与延时任务相应的延时业务执行成功的响应;
数据库200,用于接收业务系统发布的延时任务,并存储至延时任务队列,基于第一预设扫描周期扫描所述延时任务队列,获取所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列,若执行时间符合第二预设阈值,则将对应的延时任务从所述延时任务缓存队列中发送至相应的业务系统,并删除所述延时任务。
其中,所述业务系统100可以有多个,所述数据库200与前述设备1相同。
可选地,其中,所述数据库200还用于:
接收业务系统反馈的与延时任务相应的延时业务执行成功的响应,并调整所述延时任务队列中相应延时任务
根据本申请的又一方面,还提供了一种计算机可读介质,所述计算机可读介质存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述方法。
根据本申请的又一方面,还提供了一种的设备,其中,该设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述方法的操作。
例如,计算机可读指令在被执行时使所述一个或多个处理器:基于第一预设扫描周期,对延时任务队列进行扫描,以获取所述延时任务队列中每个延时任务包含的执行时间;基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列;基于第二预设扫描周期,对延时任务缓存队列进行扫描,以获取所述延时任务缓存队列中每个延时任务包含的执行时间;基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件和/或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (13)
1.一种延时任务调度的方法,其特征在于,所述方法包括:
基于第一预设扫描周期,对延时任务队列进行扫描,以获取所述延时任务队列中每个延时任务包含的执行时间,其中,所述延时任务由一个或者多个业务系统基于各自创建的延时业务而生成,并发布至所述延时任务队列;
基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列;
基于第二预设扫描周期,对延时任务缓存队列进行扫描,以获取所述延时任务缓存队列中每个延时任务包含的执行时间;
基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
2.根据权利要求1所述的方法,其特征在于,所述基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列包括:
基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务复制并发送至延时任务缓存队列,并将所述延时任务队列中所述延时任务的状态设置为处理中。
3.根据权利要求1或2所述的方法,其特征在于,所述延时任务还包含:
发布所述延时任务对应的延时业务的业务系统编号;
所述延时任务对应的延时业务类型及编号。
4.根据权利要求3所述的方法,其特征在于,所述基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务包括:
基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则基于对应的延时任务包含的业务系统编号,将所述延时任务发送至相应的业务系统,以执行与所述延时任务包含的延时业务类型及编号对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
接收业务系统反馈的与延时任务相应的延时业务执行成功的响应;
调整所述延时任务队列中相应延时任务。
6.根据权利要求5所述的方法,其特征在于,所述调整所述延时任务队列中相应延时任务包括:
将所述延时任务队列中相应延时任务的状态调整为已完成,并从所述延时任务队列中移出及存档。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述延时任务由业务系统根据创建的延时业务发布至所述延时任务队列和/或所述将对应的延时任务发送至相应的业务系统的方式包括:
通过MQ内部通讯中间件;
通过http通讯;
通过客户端长连接。
8.一种延时任务调度的设备,其特征在于,所述设备包括:
第一装置,用于基于第一预设扫描周期,对延时任务队列进行扫描,以获取所述延时任务队列中每个延时任务包含的执行时间,其中,所述延时任务由一个或者多个业务系统将各自创建的延时业务发布至所述延时任务队列;
第二装置,用于基于所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列;
第三装置,用于基于第二预设扫描周期,对延时任务缓存队列进行扫描,以获取所述延时任务缓存队列中每个延时任务包含的执行时间;
第四装置,用于基于所述延时任务缓存队列中每个延时任务包含的执行时间,若执行时间符合第二预设阈值,则将对应的延时任务发送至相应的业务系统,以执行所述延时任务对应的延时业务,并从所述延时任务缓存队列中删除所述延时任务。
9.根据权利要求8所述的设备,其特征在于,所述设备还包括:
第五装置,用于接收业务系统反馈的与延时任务相应的延时业务执行成功的响应;
第六装置,用于调整所述延时任务队列中相应延时任务。
10.一种延时任务调度的系统,其特征在于,所述系统包括:
业务系统,用于创建并发布延时业务,并发布所述延时业务对应的延时任务至数据库,其中,所述延时任务包含业务系统编号,延时任务的执行时间,对应的延时业务类型及编号,接收执行时间符合第二预设阈值且业务系统编号匹配的延时任务,执行与延时任务相应的延时业务,完成执行后向数据库发送与延时任务相应的延时业务执行成功的响应;
数据库,用于接收业务系统发布的延时任务,并存储至延时任务队列,基于第一预设扫描周期扫描所述延时任务队列,获取所述延时任务队列中每个延时任务包含的执行时间,将执行时间符合第一预设阈值的延时任务发送至延时任务缓存队列,若执行时间符合第二预设阈值,则将对应的延时任务从所述延时任务缓存队列中发送至相应的业务系统,并删除所述延时任务。
11.根据权利要求10所述的系统,其中,所述数据库还用于:
接收业务系统反馈的与延时任务相应的延时业务执行成功的响应,并调整所述延时任务队列中相应延时任务。
12.一种计算机可读介质,其特征在于,
其上存储有计算机可读指令,所述计算机可读指令被处理器执行以实现如权利要求1至7中任一项所述的方法。
13.一种延时任务调度的设备,其特征在于,该设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如权利要求1至7中任一项所述方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011565491.6A CN112596882A (zh) | 2020-12-25 | 2020-12-25 | 一种延时任务调度的方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011565491.6A CN112596882A (zh) | 2020-12-25 | 2020-12-25 | 一种延时任务调度的方法、设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112596882A true CN112596882A (zh) | 2021-04-02 |
Family
ID=75202211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011565491.6A Pending CN112596882A (zh) | 2020-12-25 | 2020-12-25 | 一种延时任务调度的方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112596882A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312391A (zh) * | 2021-06-01 | 2021-08-27 | 上海万物新生环保科技集团有限公司 | 一种缓存异步延时刷新的方法及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391271A (zh) * | 2017-05-17 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的延时任务触发方法和装置 |
CN107704323A (zh) * | 2017-11-07 | 2018-02-16 | 广州探迹科技有限公司 | 一种网络爬虫任务调度方法及装置 |
CN108874513A (zh) * | 2017-05-11 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 处理定时任务的方法、系统、电子设备和计算机可读介质 |
CN110196761A (zh) * | 2019-04-15 | 2019-09-03 | 北京达佳互联信息技术有限公司 | 延迟任务处理方法及装置 |
CN111104235A (zh) * | 2019-12-06 | 2020-05-05 | 江苏苏宁物流有限公司 | 一种基于队列的业务请求异步处理方法及装置 |
CN111694645A (zh) * | 2020-05-26 | 2020-09-22 | 平安普惠企业管理有限公司 | 分布式任务调度系统中任务处理方法及相关装置 |
-
2020
- 2020-12-25 CN CN202011565491.6A patent/CN112596882A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874513A (zh) * | 2017-05-11 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 处理定时任务的方法、系统、电子设备和计算机可读介质 |
CN107391271A (zh) * | 2017-05-17 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的延时任务触发方法和装置 |
CN107704323A (zh) * | 2017-11-07 | 2018-02-16 | 广州探迹科技有限公司 | 一种网络爬虫任务调度方法及装置 |
CN110196761A (zh) * | 2019-04-15 | 2019-09-03 | 北京达佳互联信息技术有限公司 | 延迟任务处理方法及装置 |
CN111104235A (zh) * | 2019-12-06 | 2020-05-05 | 江苏苏宁物流有限公司 | 一种基于队列的业务请求异步处理方法及装置 |
CN111694645A (zh) * | 2020-05-26 | 2020-09-22 | 平安普惠企业管理有限公司 | 分布式任务调度系统中任务处理方法及相关装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312391A (zh) * | 2021-06-01 | 2021-08-27 | 上海万物新生环保科技集团有限公司 | 一种缓存异步延时刷新的方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9189270B2 (en) | Realizing jumps in an executing process instance | |
US10999234B1 (en) | Message processing using messaging services | |
US20200379812A1 (en) | Unified container orchestration controller | |
CN110968586A (zh) | 分布式事务处理方法及装置 | |
US8725684B1 (en) | Synchronizing data stores | |
CN109542352B (zh) | 用于存储数据的方法和装置 | |
WO2017041649A1 (zh) | 一种应用部署方法及设备 | |
US10031948B1 (en) | Idempotence service | |
CN111127181A (zh) | 一种凭证记账方法和装置 | |
CN113672350A (zh) | 一种应用处理方法、装置及相关设备 | |
US20220171791A1 (en) | Replicating large statements with low latency | |
CN110764930B (zh) | 基于消息模式的请求或应答处理方法及装置 | |
CN112596882A (zh) | 一种延时任务调度的方法、设备及系统 | |
CN109218338B (zh) | 信息处理系统、方法和装置 | |
CN111800511B (zh) | 同步登录态的处理方法、系统、设备及可读存储介质 | |
CN112445860B (zh) | 一种处理分布式事务的方法和装置 | |
US11093292B2 (en) | Identifying recurring actions in a hybrid integration platform to control resource usage | |
CN112825525B (zh) | 用于处理事务的方法和装置 | |
US20230014233A1 (en) | Serverless Application Function Execution | |
CN114679503A (zh) | 一种行情数据处理方法、系统、设备 | |
CN110428254B (zh) | 去中心化存储下载方法及仲裁方法、设备和存储介质 | |
CN112486696A (zh) | 一种获取分布式锁的方法及设备 | |
Kristanto et al. | Golang and New Simple Queue Implementation on Third Party Sandbox System Based on REST API | |
CN112395591A (zh) | 改密方法及系统 | |
CN113761548B (zh) | 用于Shuffle过程的数据传输方法和装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 1101-1103, No. 433, Songhu Road, Yangpu District, Shanghai Applicant after: Shanghai wanwansheng Environmental Protection Technology Group Co.,Ltd. Address before: Room 1101-1103, No. 433, Songhu Road, Yangpu District, Shanghai Applicant before: SHANGHAI YUEYI NETWORK INFORMATION TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210402 |