掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及数据处理技术领域,尤其涉及一种任务的派发方法、装置、 设备及可读存储介质。

背景技术

目前,银行后台系统使用任务调度平台实现任务的调度,调度的过程包 括:将接收到的任务排序后存入派发任务队列,当达到派发时机时,从派发 任务队列读出待派发任务进行派发。由于队列的存入和读出不能并行执行, 所以在对任务进行排序时,若达到任务的派发时机,需要等到排序过程完成 才能进行派发,容易造成任务阻塞,导致任务的派发效率低。

发明内容

本申请提供了一种任务的派发方法、装置、设备及可读存储介质,目的 在于,提高任务派发的效率,如下:

一种任务的派发方法,包括:

响应于接收到待派发任务,按照所述待派发任务在第一预设队列中的序 位,将所述待派发任务存入所述第一预设队列;

响应于达到预设缓冲时机,从所述第一预设队列中获取候选任务集合, 所述候选任务集合包括N个候选任务,所述N为大于1的预设数值;

将所述N个候选任务,存入第二预设队列;

响应于达到目标任务的预设派发时机,将所述目标任务派发至所述目标 任务的预设执行方,所述目标任务为所述第二预设队列中的任务。

可选地,响应于接收到待派发任务,按照所述待派发任务在第一预设队 列中的序位,将所述待派发任务存入所述第一预设队列,包括:

响应于接收到所述待派发任务,依据所述待派发任务的预设优先级,获 取目标序位,所述目标序位为所述待派发任务在所述第一预设队列中的序位, 所述预设优先级越高,所述目标序位越小;

依据所述目标序位,将所述待派发任务存入所述第一预设队列。

可选地,N个候选任务为所述第一预设队列中序位前N的任务;

所述将所述N个候选任务,存入第二预设队列,包括:

按照所述候选任务在所述第一预设队列中的序位,从小到大逐个将所述 候选任务存入所述第二预设队列。

可选地,在所述将所述N个候选任务,存入第二预设队列之后,还包括:

将所述候选任务从所述第一预设队列中删除,并更新所述第一预设队列 中的任务的序位。

可选地,预设缓冲时机包括:

所述第二预设队列中的任务的数量低于第一预设阈值、所述第一预设队 列中的任务的数量超过第二预设阈值、以及达到预设缓冲周期指示的缓冲时 间,中的至少一项。

可选地,在所述响应于达到目标任务的预设派发时机,将所述目标任务 派发至所述目标任务的预设执行方之后,还包括:

将所述目标任务从所述第二预设队列中删除,并更新所述第二预设队列 中的任务的序位。

一种任务的派发装置,包括:

任务接收单元,用于响应于接收到待派发任务,按照所述待派发任务在 第一预设队列中的序位,将所述待派发任务存入所述第一预设队列;

候选任务获取单元,用于响应于达到预设缓冲时机,从所述第一预设队 列中获取候选任务集合,所述候选任务集合包括N个候选任务,所述N为大 于1的预设数值;

候选任务存入单元,用于将所述N个候选任务,存入第二预设队列;

任务派发单元,用于响应于达到目标任务的预设派发时机,将所述目标 任务派发至所述目标任务的预设执行方,所述目标任务为所述第二预设队列 中的任务。

可选地,任务接收单元,用于响应于接收到待派发任务,按照所述待派 发任务在第一预设队列中的序位,将所述待派发任务存入所述第一预设队列, 包括:所述任务接收单元具体用于:

响应于接收到所述待派发任务,依据所述待派发任务的预设优先级,获 取目标序位,所述目标序位为所述待派发任务在所述第一预设队列中的序位, 所述预设优先级越高,所述目标序位越小;

依据所述目标序位,将所述待派发任务存入所述第一预设队列。

一种任务的派发设备,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现任务的派发方法的各个步骤。

一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器 执行时,实现任务的派发方法的各个步骤。

由上述技术方案可以看出,本申请实施例提供的任务的派发方法、装置、 设备及可读存储介质,响应于接收到待派发任务,按照待派发任务在第一预 设队列中的序位,将待派发任务存入所述第一预设队列,响应于达到预设缓 冲时机,从第一预设队列中获取候选任务集合,候选任务集合包括N个候选 任务,N为大于1的预设数值,将N个候选任务,存入第二预设队列,响应 于达到目标任务的预设派发时机,将目标任务派发至目标任务的预设执行方。 可见,由于分别在两个队列中,执行任务的派发与任务的按序存储,所以, 可以实现任务的派发和任务的排序并发执行,也即无需等待待派发任务在第 一预设队列中按序存储之后,再执行任务的派发,从而提高了任务派发的效 率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种任务的派发方法的具体实施方式的流程 示意图;

图2为本申请实施例提供的一种应用于任务调度平台的任务派发过程示 意图;

图3为本申请实施例提供的一种任务的派发方法的流程示意图;

图4为本申请实施例提供的一种任务的派发装置的结构示意图;

图5为本申请实施例提供的一种任务的派发设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而 不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在计算机科学领域,对于任务的排序算法耗时长,通常时间复杂度都是 在O(n^2)量级上。并且,同一队列的插入和删除操作不能并行,也即,插入 任务的操作和派发任务的操作不能同时进行,所以现有技术中,应用单个队 列进行排序和派发,在对任务进行排序时,达到任务的派发时机,需要等到 排序过程完成才能进行派发,造成任务阻塞,导致任务的派发效率低。且由 于排序和派发的复杂度较大,应用单个队列进行任务派发和任务排序,对系 统的性能影响较大。举例来说,任务调度平台在每秒并发50tps的情况下,按 照一个任务需要5min处理(排序或派发)速度的情况下,队列中的任务的数量 高达几万量级,频繁的插入任务并对任务进行排序非常耗时,若再交替进行 任务派发,派发的效率极低,且代码性能低。

本实施例提供的一种任务的派发方法应用于但不限于任务调度平台,任 务调度平台预先配置于银行业务系统中,银行业务系统运行于客户端或服务 端,具体参见现有技术,本实施例对此不做限定。

图1示例了一种任务的派发方法的具体实现过程,本方法具体可以包括: S101~S108。

S101、构建任务接收队列和任务派发队列。

本实施例中,本步骤仅在初始状态下执行,构建的任务接收队列和任务 派发队列均为空队列,任务派发队列的数据规模和任务接收队列的数据规模 依据实际应用场景预设,且任务派发队列的数据规模远小于任务接收队列的 数据规模,构建队列的方法可以参见现有技术。

S102、响应于接收到待派发任务,依据待派发任务的预设的优先级,确 定待派发任务在任务接收队列中的序位,记为目标序位。

本实施例中,确定待派发任务在任务接收队列中的序位的过程为:依据 优先级对待派发任务和任务接收队列中已存储任务的排序过程,其中,优先 级依据各任务(待派发任务和已存储任务)的预设派发时间和/或预设重要程 度预设,具体可以参见现有技术。

需要说明的是,若任务接收队列为空队列(例如在初始状态下),接收 到待派发任务后,直接将待派发任务插入任务接收队列的队首(也即序位为1) 即可。

需要说明的是,具体的排序过程可以参见现有技术。

S103、按照目标序位将待派发任务插入至任务接收队列,并更新任务接 收队列中任务的序位。

本实施例中,任务接收队列中的序位在初始状态下为空队列,当接收到 一次待派发任务后,任务接收队列中的序位进行一次更新。具体的,当按照 序位将待派发任务插入至任务接收队列后,序位在待派发任务之后的各个任 务的序位均加一。

需要说明的是,任务的预设优先级越大,队列中任务的序位越小,即越 靠近队首。

S104、响应于达到预设缓冲时机,读取任务接收队列中,序位前N位的 任务,作为候选任务。

本实施例中,N为预设数值,预设数值满足大于1,且小于任务接收队列 的容量(记为预设容量)。预设缓冲时机包括:任务派发队列中的任务数量 低于第一预设阈值。

S105、将候选任务依据候选任务在任务接收队列中的序位,从小到大依 序发送至任务派发队列。

S106、将候选任务从任务接收队列中删除,并更新任务接收队列中的任 务的序位。

本实施例中,更新任务派发队列包括:将序位位于第N位之后的任务的 序位减N。

S107、响应于达到目标任务的预设派发时机,将目标任务派发至目标任 务的预设执行方。

本实施例中,目标任务为任务派发队列中的序位第一的任务。

S108、将目标任务从任务派发队列中删除,并更新任务派发队列中任务 的序位。

本实施例中,更新任务派发队列包括:将序位位于目标任务之后的任务 的序位减1。

需要说明的是,图1中S102~S103为接收新的待派发任务并对待派发任 务进行排序(简称为排序过程),更新任务接收队列的过程,S104~S106为 从任务接收队列读取候选任务至任务派发队列的过程(简称为缓冲过程), S107~S108为派发任务至预设执行方的过程(简称为派发过程)。其中,本 方法不限定S107~S108和S102~S103的执行顺序,也即可以并行执行排序过 程和派发过程。

由上述技术方案可以看出,本申请实施例提供的一种任务派发方法,至 少具有下述有益效果:

1、接收的待派发任务首先插入至任务接收序列,派发的目标任务为任务 派发队列中的任务,所以,对任务进行排序的过程和任务的派发过程可以并 行执行,无需等待任务排序之后再进行任务派发,本方法提高了任务派发的 效率,以及避免频繁针对同一队列交替进行插入和删除操作时,导致的代码 性能低。

2、从任务接收队列一次性读取N(N大于1)个任务至任务派发队列的 过程的复杂度,小于将该N个任务分别派发至执行方,进一步提高了任务派 发的效率。

3、从任务接收队列读取的N个任务的序位为任务接收队列中序位的前N 位,且,N个任务按照在任务接收队列中的序位,从小到大插入至任务派发 序列,所以,本方案保证两个队列中的任务均按照优先级排序,提高任务派 发的准确度。

图2为本申请实施例提供的一种应用于任务调度平台的任务派发过程示 意图。如图2所示,任务调度平台包括任务接收模块和任务派发模块。

接收模块201:用于接收各上游系统发送的任务,并根据排序因子(包括 任务的紧急程度、任务处理时间和客户的等级)计算任务的优先级,并根据 优先级将任务接收队列里的任务进行排序。

派发模块202:用于将任务派发队列的任务派发给执行方(一般为客服人 员登陆的账号),当任务派发队列的任务低于第一预设阈值时,从任务接收 队列批量获取多条(N条)任务。

需要说明的是,接收模块和派发模块的具体功能的实现过程可以参见图1 所示的流程。

综上,本方案通过使用两个队列(即任务接收队列和任务派发队列)解 决任务调度中频繁接收数据和派发数据带来的性能低的问题。具体的,任务 接收专门用于接收任务,以及依序存储任务。任务派发队列专门用于派发任 务。一般情况下,当任务派发队列中的任务数量小于第一预设阈值时,从任 务接收队列批量获取多条任务,由于依序读取多条任务,可见,本方法能够 在不影响任务的优先级的情况下,降低从任务接收队列读取任务的次数,提 高任务处理的性能和任务派发的效率。

需要说明的是,图1仅示例了一种任务派发的具体过程,本申请还包括 其他的具体实现过程,例如,预设缓冲时机还包括:任务接收队列中的任务 数量超过第二预设阈值;和/或,达到预设缓冲周期指示的缓冲时间。再例如, S102~103为接收待派发任务并依序将待派发任务存入任务接收队列的一种可 选的实现过程。。

综上,将本申请提供的任务派发方法总结概括为图3所示的流程,如图3 所示,本方法包括:

S301、响应于接收到待派发任务,按照待派发任务在第一预设队列中的 序位,将待派发任务存入第一预设队列。

本实施例中,待派发任务在第一预设队列中的序位指示待派发任务在第 一预设队列中的位置,任一队列中,待派发任务的序位越小,待派发任务在 队列中的位置越靠近队首。

需要说明的是,按照待派发任务在第一预设队列中的序位,将待派发任 务存入第一预设队列的可选的一种具体实现方式可以参见上述实施例。

S302、响应于达到预设缓冲时机,从第一预设队列中获取候选任务集合。

本实施例中,候选任务集合包括N个候选任务,N为大于1的预设数值。 第一预设队列中包括排序后的多个待派发任务。

可选地,第一预设队列为上述实施例中的任务接收队列,则N个候选任 务为第一预设队列中序位前N的任务,具体的任务接收队列接收待派发任务 且对任务进行排序的过程可以参见上述实施例。

S303、将N个候选任务,存入第二预设队列。

本实施例中,第二预设队列为上述实施例中的任务派发队列,将N个候 选任务,存入第二预设队列的方法包括多种,可选的,按照所述候选任务在 所述第一预设队列中的序位,从小到大逐个将所述候选任务存入所述第二预 设队列。具体可以参见上述实施例,在此不做赘述。

S304、响应于达到目标任务的预设派发时机,将目标任务派发至目标任 务的预设执行方。

本实施例中,目标任务为第二预设队列中的任务,可选的,目标任务为 第二预设队列中序位第一的任务,具体的任务派发方法可以参见现有技术。

由上述技术方案可以看出,本实施例提供的一种任务派发方法,响应于 接收到待派发任务,按照待派发任务在第一预设队列中的序位,将待派发任 务存入所述第一预设队列,响应于达到预设缓冲时机,从第一预设队列中获 取候选任务集合,候选任务集合包括N个候选任务,N为大于1的预设数值, 将N个候选任务,存入第二预设队列,响应于达到目标任务的预设派发时机, 将目标任务派发至目标任务的预设执行方。可见,由于分别在两个队列中, 执行任务的派发与任务的按序存储,所以,可以实现任务的派发和任务的排 序并发执行,也即无需等待待派发任务在第一预设队列中按序存储之后,再 执行任务的派发,从而提高了任务派发的效率。

图4示出了本申请实施例提供的一种任务的派发装置的结构示意图,如 图4所示,该装置可以包括:

任务接收单元401,用于响应于接收到待派发任务,按照所述待派发任务 在第一预设队列中的序位,将所述待派发任务存入所述第一预设队列;

候选任务获取单元402,用于响应于达到预设缓冲时机,从所述第一预设 队列中获取候选任务集合,所述候选任务集合包括N个候选任务,所述N为 大于1的预设数值403;

候选任务存入单元404,用于将所述N个候选任务,存入第二预设队列;

任务派发单元405,用于响应于达到目标任务的预设派发时机,将所述目 标任务派发至所述目标任务的预设执行方,所述目标任务为所述第二预设队 列中的任务。

可选地,任务接收单元,用于响应于接收到待派发任务,按照所述待派 发任务在第一预设队列中的序位,将所述待派发任务存入所述第一预设队列, 包括:所述任务接收单元具体用于:

响应于接收到所述待派发任务,依据所述待派发任务的预设优先级,获 取目标序位,所述目标序位为所述待派发任务在所述第一预设队列中的序位, 所述预设优先级越高,所述目标序位越小;

依据所述目标序位,将所述待派发任务存入所述第一预设队列。

可选地,N个候选任务为所述第一预设队列中序位前N的任务;

候选任务存入单元用于将所述N个候选任务,存入第二预设队列,包括: 候选任务存入单元具体用于:

按照所述候选任务在所述第一预设队列中的序位,从小到大逐个将所述 候选任务存入所述第二预设队列。

可选地,本装置还包括:第一队列更新单元,用于在所述将所述N个候 选任务,存入第二预设队列之后,将所述候选任务从所述第一预设队列中删 除,并更新所述第一预设队列中的任务的序位。

可选地,预设缓冲时机包括:所述第二预设队列中的任务的数量低于第 一预设阈值、所述第一预设队列中的任务的数量超过第二预设阈值、以及达 到预设缓冲周期指示的缓冲时间,中的至少一项。

可选地,本装置还包括:第一队列更新单元,用于在所述响应于达到目 标任务的预设派发时机,将所述目标任务派发至所述目标任务的预设执行方 之后,将所述目标任务从所述第二预设队列中删除,并更新所述第二预设队 列中的任务的序位。

图5示出了该任务的派发设备的结构示意图,该设备可以包括:至少一个 处理器501,至少一个通信接口502,至少一个存储器503和至少一个通信总线 504;

在本申请实施例中,处理器501、通信接口502、存储器503、通信总线504 的数量为至少一个,且处理器501、通信接口502、存储器503通过通信总线504 完成相互间的通信;

处理器501可能是一个中央处理器CPU,或者是特定集成电路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例 的一个或多个集成电路等;

存储器503可能包含高速RAM存储器,也可能还包括非易失性存储器 (non-volatile memory)等,例如至少一个磁盘存储器;

其中,存储器存储有程序,处理器可执行存储器存储的程序,实现本申 请实施例提供的一种任务的派发方法的各个步骤,如下:

一种任务的派发方法,包括:

响应于接收到待派发任务,按照所述待派发任务在第一预设队列中的序 位,将所述待派发任务存入所述第一预设队列;

响应于达到预设缓冲时机,从所述第一预设队列中获取候选任务集合, 所述候选任务集合包括N个候选任务,所述N为大于1的预设数值;

将所述N个候选任务,存入第二预设队列;

响应于达到目标任务的预设派发时机,将所述目标任务派发至所述目标 任务的预设执行方,所述目标任务为所述第二预设队列中的任务。

可选地,响应于接收到待派发任务,按照所述待派发任务在第一预设队 列中的序位,将所述待派发任务存入所述第一预设队列,包括:

响应于接收到所述待派发任务,依据所述待派发任务的预设优先级,获 取目标序位,所述目标序位为所述待派发任务在所述第一预设队列中的序位, 所述预设优先级越高,所述目标序位越小;

依据所述目标序位,将所述待派发任务存入所述第一预设队列。

可选地,N个候选任务为所述第一预设队列中序位前N的任务;

所述将所述N个候选任务,存入第二预设队列,包括:

按照所述候选任务在所述第一预设队列中的序位,从小到大逐个将所述 候选任务存入所述第二预设队列。

可选地,在所述将所述N个候选任务,存入第二预设队列之后,还包括:

将所述候选任务从所述第一预设队列中删除,并更新所述第一预设队列 中的任务的序位。

可选地,预设缓冲时机包括:

所述第二预设队列中的任务的数量低于第一预设阈值、所述第一预设队 列中的任务的数量超过第二预设阈值、以及达到预设缓冲周期指示的缓冲时 间,中的至少一项。

可选地,在所述响应于达到目标任务的预设派发时机,将所述目标任务 派发至所述目标任务的预设执行方之后,还包括:

将所述目标任务从所述第二预设队列中删除,并更新所述第二预设队列 中的任务的序位。

本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于 处理器执行的计算机程序,计算机程序被处理器执行时,实现本申请实施例 提供的一种任务的派发方法的各个步骤,如下:

一种任务的派发方法,包括:

响应于接收到待派发任务,按照所述待派发任务在第一预设队列中的序 位,将所述待派发任务存入所述第一预设队列;

响应于达到预设缓冲时机,从所述第一预设队列中获取候选任务集合, 所述候选任务集合包括N个候选任务,所述N为大于1的预设数值;

将所述N个候选任务,存入第二预设队列;

响应于达到目标任务的预设派发时机,将所述目标任务派发至所述目标 任务的预设执行方,所述目标任务为所述第二预设队列中的任务。

可选地,响应于接收到待派发任务,按照所述待派发任务在第一预设队 列中的序位,将所述待派发任务存入所述第一预设队列,包括:

响应于接收到所述待派发任务,依据所述待派发任务的预设优先级,获 取目标序位,所述目标序位为所述待派发任务在所述第一预设队列中的序位, 所述预设优先级越高,所述目标序位越小;

依据所述目标序位,将所述待派发任务存入所述第一预设队列。

可选地,N个候选任务为所述第一预设队列中序位前N的任务;

所述将所述N个候选任务,存入第二预设队列,包括:

按照所述候选任务在所述第一预设队列中的序位,从小到大逐个将所述 候选任务存入所述第二预设队列。

可选地,在所述将所述N个候选任务,存入第二预设队列之后,还包括:

将所述候选任务从所述第一预设队列中删除,并更新所述第一预设队列 中的任务的序位。

可选地,预设缓冲时机包括:

所述第二预设队列中的任务的数量低于第一预设阈值、所述第一预设队 列中的任务的数量超过第二预设阈值、以及达到预设缓冲周期指示的缓冲时 间,中的至少一项。

可选地,在所述响应于达到目标任务的预设派发时机,将所述目标任务 派发至所述目标任务的预设执行方之后,还包括:

将所述目标任务从所述第二预设队列中删除,并更新所述第二预设队列 中的任务的序位。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语 仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求 或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术 语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包 括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括 没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备 所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素, 并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同 要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都 是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用 本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下, 在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 任务的派发方法、装置、设备及可读存储介质
  • 任务派发方法及装置、计算机可读存储介质、电子设备
技术分类

06120113115377