CN113327053A - 任务处理方法及装置 - Google Patents
任务处理方法及装置 Download PDFInfo
- Publication number
- CN113327053A CN113327053A CN202110687095.9A CN202110687095A CN113327053A CN 113327053 A CN113327053 A CN 113327053A CN 202110687095 A CN202110687095 A CN 202110687095A CN 113327053 A CN113327053 A CN 113327053A
- Authority
- CN
- China
- Prior art keywords
- subtask
- subtasks
- task
- queue
- queues
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Technology Law (AREA)
- Educational Administration (AREA)
- General Engineering & Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种任务处理方法及装置,该方法包括:在子任务数据库中获取子任务。根据子任务所属任务的任务类型,在多个缓存队列中确定目标缓存队列,并将子任务存储至目标缓存队列。确定多个缓存队列的优先级,并根据多个缓存队列的优先级、以及缓存队列中各子任务对应的子任务类型,将多个缓存队列中的子任务分配至对应的任务处理队列。针对任意一个任务处理队列,通过任务处理队列对应的服务对任务处理队列中的子任务进行处理。通过子任务数据库向多个缓存队列分发子任务,多个缓存队列向多个任务处理队列能够分发足够数量的子任务。因此在外部服务请求量突增时能够提供足够数量的子任务,这提高了任务处理的效率。
Description
技术领域
本申请实施例涉及自动控制技术,尤其涉及一种任务处理方法及装置。
背景技术
在银行业务处理过程中,通常从子任务数据库中去获取子任务,并将获取到的子任务分发到任务队列中,后续外部服务从任务队列中调用子任务进行任务处理。
目前,在现有技术中,将任务队列分为一个临时任务队列和多个分配任务队列,通常定时从子任务数据库去获取一定数量的子任务并按照优先级存储到临时任务队列中,再将临时任务队列中的子任务按照任务属性同步分配到不同的分配任务队列中,后续通过外部服务从分配任务队列中调用子任务进行子任务处理。
然而,现有技术在进行任务处理的过程中,由于定时、定量将子任务数据库中的子任务存储到临时任务队列,当子任务数据库中包括较多的子任务时,无法及时将子任务数据库中的子任务存储至临时任务队列,使得外部服务不能及时对子任务进行处理,进而导致子任务处理的效率较低。
发明内容
本申请实施例提供一种任务处理方法及装置,以提高子任务处理的效率。
第一方面,本申请实施例提供一种任务处理方法,应用于业务处理系统,所述业务处理系统包括子任务数据库、多个缓存队列和多个任务处理队列,包括:
在所述子任务数据库中获取子任务,所述子任务数据库中包括多个子任务;
根据所述子任务所属任务的任务类型,在所述多个缓存队列中确定目标缓存队列,并将所述子任务存储至所述目标缓存队列;
确定所述多个缓存队列的优先级,并根据所述多个缓存队列的优先级、以及所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列;
针对任意一个任务处理队列,通过所述任务处理队列对应的服务对所述任务处理队列中的子任务进行处理。
在一种可能的设计中,所述根据所述多个缓存队列的优先级、以及所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列,包括:
按照优先级从高到底的顺序,依次根据所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列。
在一种可能的设计中,所述按照优先级从高到底的顺序,依次根据所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列,包括:
获取第i个缓存队列中各子任务对应的子任务类型,根据各所述子任务对应的子任务类型,确定各所述子任务对应的任务处理队列,并将各所述子任务分配至对应的任务处理队列;
其中,所述i依次取1、2、……、N,所述N为所述多个缓存队列的数量,第i个缓存队列的优先级大于第i+1个缓存队列的优先级。
在一种可能的设计中,所述在子任务数据库中获取子任务,包括:
获取所述子任务数据库中各子任务的处理等待时长;
根据所述子任务数据库中各子任务的处理等待时长,在所述子任务数据库中获取待处理的子任务。
在一种可能的设计中,所述根据所述子任务数据库中各子任务的处理等待时长,在所述子任务数据库中获取子任务,包括:
按照处理等待时长从小到大的顺序,对所述子任务数据库中的子任务进行排序;
按照排序后的顺序,在所述子任务数据库中获取子任务。
在一种可能的设计中,所述在所述子任务数据库中获取子任务之前,还包括:
接收客户端发送的任务处理请求,所述任务处理请求用于请求处理待处理任务;
确定所述待处理任务对应的至少一个子任务;
将所述至少一个子任务存储至所述子任务数据库。
第二方面,本申请实施例提供一种任务处理装置,包括:
获取模块,用于在所述子任务数据库中获取子任务,所述子任务数据库中包括多个子任务;
确定模块,用于根据所述子任务所属任务的任务类型,在所述多个缓存队列中确定目标缓存队列,并将所述子任务存储至所述目标缓存队列;
分配模块,用于确定所述多个缓存队列的优先级,并根据所述多个缓存队列的优先级、以及所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列;
处理模块,用于针对任意一个任务处理队列,通过所述任务处理队列对应的服务对所述任务处理队列中的子任务进行处理。
在一种可能的设计中,所述分配模块具体用于:
按照优先级从高到底的顺序,依次根据所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列。
在一种可能的设计中,所述分配模块具体用于:
获取第i个缓存队列中各子任务对应的子任务类型,根据各所述子任务对应的子任务类型,确定各所述子任务对应的任务处理队列,并将各所述子任务分配至对应的任务处理队列;
其中,所述i依次取1、2、……、N,所述N为所述多个缓存队列的数量,第i个缓存队列的优先级大于第i+1个缓存队列的优先级。
在一种可能的设计中,所述获取模块具体用于:
获取所述子任务数据库中各子任务的处理等待时长;
根据所述子任务数据库中各子任务的处理等待时长,在所述子任务数据库中获取待处理的子任务。
在一种可能的设计中,所述获取模块具体用于:
按照处理等待时长从小到大的顺序,对所述子任务数据库中的子任务进行排序;
按照排序后的顺序,在所述子任务数据库中获取子任务。
在一种可能的设计中,所述装置还包括存储模块,所述存储模块具体用于:
接收客户端发送的任务处理请求,所述任务处理请求用于请求处理待处理任务;
确定所述待处理任务对应的至少一个子任务;
将所述至少一个子任务存储至所述子任务数据库。
第三方面,本申请实施例提供一种任务处理设备,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
本申请实施例提供一种任务处理方法及装置,该方法包括:在子任务数据库中获取子任务,子任务数据库中包括多个子任务。根据子任务所属任务的任务类型,在多个缓存队列中确定目标缓存队列,并将子任务存储至目标缓存队列。确定多个缓存队列的优先级,并根据多个缓存队列的优先级、以及缓存队列中各子任务对应的子任务类型,将多个缓存队列中的子任务分配至对应的任务处理队列。针对任意一个任务处理队列,通过任务处理队列对应的服务对任务处理队列中的子任务进行处理。通过子任务数据库向多个缓存队列分发子任务,多个缓存队列向多个任务处理队列能够分发足够数量的子任务。因此在外部服务请求量突增时能够提供足够数量的子任务,这提高了任务处理的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的任务处理系统的示意图;
图2为本申请实施例提供的任务处理方法的流程图一;
图3为本申请实施例提供的子任务数据库存储子任务的示意图一;
图4为本申请实施例提供的子任务数据库存储子任务的示意图二;
图5为本申请实施例提供的子任务数据库存储子任务的示意图三;
图6为本申请实施例提供的多个缓存队列的示意图;
图7为本申请实施例提供的任务处理方法的流程图二;
图8为本申请实施例提供的确定多个缓存队列的优先级的示意图;
图9为本申请实施例提供的任务处理装置的结构示意图;
图10为本申请实施例提供的任务处理设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解本申请的技术方案,首先结合图1对本申请所涉及的相关概念进行介绍,图1为本申请实施例提供的任务处理系统的示意图:
本申请所提供的任务处理方法,应用于业务处理系统。
业务处理系统,是对业务进行处理所使用的信息系统。如图1所示,业务处理系统包括子任务数据库、多个缓存队列、多个任务处理队列等子模块。
接下来,以银行业务处理系统收到业务录入请求为例,对业务处理系统所包括的子模块、以及子模块之间的相互关联进行说明:
在银行业务处理系统收到来自多个下辖业务中心的业务录入请求时,业务处理系统将来自各业务中心的各个业务请求对应的任务分成多个子任务存储到子任务数据库,其中,每个任务有对应所属的任务类型,每个子任务对应的任务类型为所属任务对应的任务类型。同时,每个子任务都有多种属性,例如子任务类型。之后,子任务数据库向多个缓存队列分发子任务。随后,多个缓存队列向多个任务处理队列分发子任务,以使任务处理队列分发子任务来完成子任务处理。例如,外部服务发起任务请求后,任务处理队列响应来自外部服务的任务请求并向外部服务分发子任务,外部服务接收来自任务处理队列分发的子任务并对子任务进行处理。
需要强调说明的一点是,缓存队列和任务处理队列在分发子任务时,均遵循先进先出的规则,即在各队列分发子任务出队的顺序和各子任务入队时的顺序相同,先入队则先出队,后入队则后出队。
基于以上对本申请相关概念的介绍,接下来对本申请相关的现有技术以及现有技术存在的问题进行说明:
目前,在任务处理相关的现有技术中,通常定时从子任务数据库去获取一定数量的子任务并按照优先级存储到临时任务队列中,再将临时任务队列中的子任务按照任务属性同步分配到不同的分配任务队列中,后续通过外部服务从分配任务队列中调用子任务进行子任务处理。
然而,现有技术在进行任务处理的过程中,由于定时、定量将子任务数据库中的子任务存储到临时任务队列,当子任务数据库中包括较多的子任务时,无法及时将子任务数据库中的子任务存储至临时任务队列,使得外部服务不能及时对子任务进行处理,进而导致子任务处理的效率较低。
基于上述存在的问题,本申请提出了如下的技术构思:从子任务数据库中分发子任务时,按照任务类型同时分发至多个缓存队列中,其中,每个缓存队列中仅存储同一任务类型的子任务,且同一任务类型的子任务仅存储至同一缓存队列中。通过子任务数据库同时向多个缓存队列分发任务,可以保证多个缓存队列向多个任务处理队列能够分发足够数量的子任务,进而保证在外部服务请求量突增的情况下提供足够数量的子任务,从而提高了任务处理的效率。
基于上述介绍的技术构思,下面,通过具体实施例,对本申请所示的技术方案进行详细说明。需要说明的是,下面几个实施例可以单独存在,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再重复说明。
下面,首先结合图2和具体的实施例对本申请所提供的任务处理方法进行详细介绍,值得说明的是,本申请各实施例的执行主体为服务器等具有任务处理功能的设备,本实施例对此执行主体的具体实现不做限定,只要其可以进行任务处理即可,图2为本申请实施例提供的任务处理方法的流程图一。
如图2所示,该方法包括:
S201、在子任务数据库中获取子任务,子任务数据库中包括多个子任务。
在本实施例中,服务器在接收到来自多个业务中心的业务请求时,根据各业务请求,确定各业务请求对应的任务,将并将任务分成多个子任务后存储在子任务数据库中。
接下来,可以通过如下至少两种方式将各业务请求对应的任务分成多个子任务:
在一种可能的实现方式中,根据预设数量,将业务请求对应的任务平均分成任务量大小相同的预设数量份子任务。
在另一种可能的实现方式中,根据预设任务量、业务请求对应的任务的任务总量,将业务请求对应的任务分成多个具有预设任务量的子任务和/或一个具有剩余任务量的子任务。其中,剩余任务量为小于预设任务量的数值。
需要强调说明的是,各个业务请求对应的任务都有对应所属的任务类型,每个子任务对应的任务类型为所属任务对应的任务类型。
将各业务对应的任务分成子任务存储到子任务数据库时,为各任务类型设置了不同的优先级,其中,任务类型的优先级可以为静态优先级或动态优先级。其中,静态优先级是指该任务类型的优先级设定后,不再改变。动态优先级是指可以根据需要对该任务类型的优先级进行调整。同时,为各子任务设置了容忍时长。其中,容忍时长为一段时长,是指该任务必须在该时长内被处理。当从子任务创建开始计时,则当计时时长接近容忍时长时该子任务还未被处理,则自动提升该子任务的优先级,以保证该子任务在容忍时长内完成。
基于上述将各业务请求对应的任务分成多个子任务的基础上,接下来,对在子任务数据库中存储子任务的三种可能的实现方式进行示例性的介绍。
在一种可能的实现方式中,在子任务数据库中以队列的形式存储各子任务,按照接收业务请求的先后顺序,将各业务请求对应的多个子任务按照容忍时长的依次进行排序,即容忍时长较短的先存储,容忍时长较长的后存储。
下面,结合图3,通过具体示例,对该种可能的实现方式进行说明,图3为本申请实施例提供的子任务数据库存储子任务的示意图一。
如图3所示,子任务数据库是以队列的形式对子任务进行存储,并遵循队列先进先出的规则控制子任务入队出队。根据容忍时长从短到长的顺序排序,先将容忍时间较短对应的子任务存储在子任务数据库,在将容忍时间较长对应的子任务存储在子任务数据库,以此类推,将所有子任务存储在子任务数据库中。
在另一种可能的实现方式中,在子任务数据库中以队列的形式存储各子任务,按照子任务对应的任务类型的优先级进行存储,即将具有优先级高的任务类型对应的多个子任务存储在前面,将存储优先级低的任务类型对应的多个子任务存储在后面。
下面,结合图4,通过具体示例,对该种可能的实现方式进行说明,图4为本申请实施例提供的子任务数据库存储子任务的示意图二。
如图4所示,子任务数据库是以队列的形式对子任务进行存储,并遵循队列先进先出的规则控制子任务入队出队。根据任务类型优先级从高到低的顺序排序,先将优先级高对应的子任务存储在子任务数据库,在将优先级低对应的子任务存储在子任务数据库,以此类推,将所有子任务存储在子任务数据库中。
再一种可能的实现方式,在子任务数据库设置两条队列,分别为实时性队列、非实时性队列。其中,实时性队列用于存储容忍时长小于或等于预设时长的子任务,非实时性队列用于存储容忍时长大于预设时长的子任务。其中,在实时性队列和非实时性队列中存储子任务时,均按照容忍时长从短到长的顺序控制对子任务进行入队。
下面,结合图5,通过具体示例,对该种可能的实现方式进行说明,图5为本申请实施例提供的子任务数据库存储子任务的示意图三。
如图5所示,子任务数据库中包括实时性队列和非实时性队列,且在实时性队列和非实时性队列中存储子任务时,均按照容忍时长从短到长对子任务进行入队。
基于上述对于子任务数据库存储子任务的三种可能的实现方式进行介绍的基础上,接下来对从子任务数据库中获取子任务的三种可能实现方式进行介绍。
在一种可能的实现方式中,从子任务数据库中,按照子任务出队的顺序获取预设数量的子任务。
在另一种可能的实现方式中,先从实时性队列中获取子任务,当实时性队列的中的子任务被取完时,再从非实时性队列中取,直至获取到的子任务的数量达到预设数量。
再一种可能的实现方式中,从实时性队列中获取第一数量的子任务,从非实时性队列获取第二数量的子任务,其中,第一数量和第二数量值等于预设数量。
基于上述在子任务数据库中存储多个子任务的基础上,接下来对从子任务数据库中获取子任务的两种可能的实现方式进行说明。
在一种可能的实现方式中,获取子数据库定时定量按照先进先出的规则出队一定数量的子任务。
在另一种可能的实现方式中,确定预设子任务数量,从子任务数据库中按照先进先出的规则出队预设子任务数量个子任务。其中,预设子任务数量未所需子任务的数量。
在本实施例中,只是对从子任务数据库中获取子任务的实现方式进行示例性的介绍,并不是对从子任务数据库中获取子任务的实现方式做以限制,对从子任务数据库中获取子任务的实现方式可以根据实际需求进行选择。
S202、根据子任务所属任务的任务类型,在多个缓存队列中确定目标缓存队列,并将子任务存储至目标缓存队列。
需要强调说明的一点是,每个缓存队列中仅存储同一任务类型的子任务,且同一任务类型的子任务仅存储至同一缓存队列中。
基于上述S201从子任务数据库中获取到多个子任务后,接下来,将该获取到的多个子任务存储至多个缓存队列中。需要说明的是,在详细介绍将该获取到的多个子任务存储至多个缓存队列中之前,首先对多个缓存队列的可能的两种可能的实现方式进行介绍。
在一种可能的实现方式中,该多个缓存队列均存储在同一数据库服务器中。
在另一种可能的实现方式中,该多个缓存队列存储在多台数据库服务器中,其中,缓存队列的数量可以小于或大于或等于数据库服务器的数量,根据缓存队列名称进行哈希计算后均匀分布到各个数据库服务器上。当缓存队列的数量大于数据库服务器的数量时,例如包括5个缓存队列和3台数据库服务器,5个缓存队列分别为缓存队列1、缓存队列2、缓存队列3、缓存队列4及缓存队列5,以及,3台数据库服务器分别为数据库服务器1、数据库服务器2及数据库服务器3。其中,数据库服务器1中存储缓存队列1和缓存队列2,数据库服务器2中存储缓存队列3和缓存队列4,数据库服务器3中存储缓存队列5。缓存队列的数量等于数据库服务器的数量时,例如,包括3个缓存队列和3台数据库服务器,3个缓存队列分别为缓存队列1、缓存队列2及缓存队列3,以及,3台数据库服务器分别为数据库服务器1、数据库服务器2及数据库服务器3。其中,数据库服务器1中存储缓存队列1,数据库服务器2中存储缓存队列2,数据库服务器3中存储缓存队列3。缓存队列的数量小于数据库服务器的数量时,例如,包括3个缓存队列和5台数据库服务器,3个缓存队列分别为缓存队列1、缓存队列2及缓存队列3,以及,5台数据库服务器分别为数据库服务器1、数据库服务器2、数据库服务器3、数据库服务器4及数据库服务器5。其中,数据库服务器1中存储缓存队列1,数据库服务器2中存储缓存队列2,数据库服务器5中存储缓存队列3,数据库服务器3和数据库服务器4中均未存储缓存队列1-3中任意一个。
其中,通过多台数据库服务器来存储多个缓存队列,可以将多个子任务分散存储至多台数据库服务器上,因此存储子任务的能力由多台数据库服务器来承担,进而缓存子任务的能力不受单台数据库服务器性能的影响。同时,通过多台数据库存储多个子任务有利于提高后续缓存队列分发子任务的效率。
在本实施例中,只是对多个缓存队列的实现方式进行示例性的介绍,并不是对多个缓存队列的实现方式做以限制,对多个缓存队列的实现方式可以根据实际需求进行选择。
在本实施例中,将从子任务数据库获取到的子任务存储至缓存队列中。首先,根据子任务所属任务的任务类型,在多个缓存队列中,确定目标缓存队列。
下面,结合图6,通过具体示例,对确定目标缓存队列的实现方式进行示例性的说明,图6为本申请实施例提供的多个缓存队列的示意图。
接下来,对子任务K确定目标缓存队列的过程进行说明,其中,假定子任务K所属任务的任务类型为任务类型3。
如图6所示,包括n个缓存队列,假定缓存队列1所存储的子任务所属任务的任务类型为任务类型1,缓存队列2所存储的子任务所属任务的任务类型为任务类型2,…,缓存队列n所存储的子任务所属任务的任务类型为任务类型n。已知子任务K所属业务类型为业务类型2,因此确定子任务K的目标缓存队列为缓存队列2。
基于以上的内容,在确定子任务对应的目标缓存队列后,将子任务存储(加入)至该目标缓存队列中。
S203、确定多个缓存队列的优先级,并根据多个缓存队列的优先级、以及缓存队列中各子任务对应的子任务类型,将多个缓存队列中的子任务分配至对应的任务处理队列。
基于步骤S202将获取多个子任务放入多个缓存队列后,接下来,从多个缓存队列中取多个子任务分发至多个任务处理队列。
在本实施例中,通过确定多个缓存队列的优先级,并根据多个缓存队列的优先级、以及缓存队列中各子任务对应的子任务类型,将多个缓存队列中的子任务分配至对应的任务处理队列。
接下来,首先对确定多个缓存队列的优先级的两种可能的实现方法进行介绍:
在一种可能的实现方式中,根据业务处理系统默认的业务类型优先级,确定各个业务类型所对应的缓存队列的优先级,其中,各缓存队列的优先级与各缓存队列对应的业务类型的优先级一致。例如,总共包括5个缓存队列,为了便于描述,记缓存队列1、缓存队列2、缓存队列3、缓存队列4及缓存队列5对应的业务类型分别为业务类型1、业务类型2、业务类型3、业务类型4及业务类型5。假定,业务处理系统默认的业务类型优先级从高到低依次为:业务类型3、业务类型2、业务类型5、业务类型1及业务类型4。因此,可以理解的是,可以确定缓存队列的优先级从高到底依次为:缓存队列3、缓存队列2、缓存队列5、缓存队列1、缓存队列4。其中,根据业务种类对多个缓存队列设定优先级,这能够保证优先级高的子业务能够得到及时处理。
在另一种可能的实现中,根据业务处理需要对业务类型的优先级进行了调整,因此将根据调整后的业务类型来确定各个业务类型所对应的缓存队列的优先级。各缓存队列的优先级与调整后各缓存队列对应的业务类型的优先级一致。其中,根据业务处理需要对业务类型的优先级进行调整,进而调整了多个缓存队列的优先级,这使得业务处理的灵活性更高,更能够满足业务处理需求。
另外,需要强调说明的一点是,每个子任务对应唯一的任务子类型。同时,每个任务处理队列中仅存储同一子任务类型的子任务,且同一子任务类型的子任务仅存储至同一任务处理队列中。
基于上述内容在确定多个缓存队列的优先级后,接下来,根据多个缓存队列的优先级、以及缓存队列中各子任务对应的子任务类型,将多个缓存队列中的子任务分配至对应的任务处理队列。以上述实施例中确定的缓存队列的优先级为例,即缓存队列的优先级从高到底依次为:缓存队列3、缓存队列2、缓存队列5、缓存队列1、缓存队列4,对将多个缓存队列中的子任务分配至对应的任务处理队列的实现方式进行介绍,并假设多个任务队列所需要的子任务数量为第三数量。
在本实施例中,首先在多个缓存队列中确定优先级最高的缓存队列,即缓存队列3。接下来,将缓存队列3中所存储的子任务按照先进先出的规则依次出队,假定缓存队列3中存储子任务的数量为第四数量。若第四数量大于或等于第三数量时,将从缓存队列3中按照先进先出的规则控制第三数量个子任务出队,并按照各子任务的子任务类型将各子任务存储至各自对应的任务处理队列中。
当第四数量的数值小于第三数量的数值时,将从相比缓存队列3优先级次之的缓存队列2中分配子任务至多个任务处理队列中。需要说明的是,由于多个任务队列所需要的子任务数量为第三数量,因此还需要从其他缓存队列中分配第五数量个子任务至多个任务处理队列中,其中,第五数量为第三数量与第四数量的差值。接下来,将从相比缓存队列3优先级次之的缓存队列2中分配子任务至多个任务处理队列中。假设缓存队列2包括子任务的数量为第六数量,且第六数量大于第五数量。因此,从缓存队列2中前第五数量个子任务依次出队,并该第五数量个子任务分配至各个子任务所对应的任务处理队列中。
若第四数量小于第三数量时,将缓存队列3中所有子任务按照子任务的子任务类型,存储至对应的任务处理队列中。
接下来,以缓存队列3中的任意一个子任务(如,子任务3-1,即缓存队列3中的第一个子任务)为例,对将子任务存储至对应的任务处理队列的可能的实现方式进行说明。假设存在5个任务处理队列,且该5个任务处理各自对应的子任务类型的情况为:任务处理队列1对应任务处理类型1、任务处理队列2对应任务处理类型2、任务处理队列3对应任务处理类型3、任务处理队列4对应任务处理类型4,以及,任务处理队列5对应任务处理类型5,并假设子任务3-1对应的子任务类型为子任务类型3。
首先,确定子任务的子任务类型,即子任务3-1对应的子任务类型为子任务类型3。以及,确定子任务类型3对应的任务处理队列为任务处理队列3。
因此,将子任务3-1分配至任务处理队列3中。同理,将缓存队列3中的所有子任务按照同样的方式,分配到各自对应的任务处理队列中。
S204、针对任意一个任务处理队列,通过任务处理队列对应的服务对任务处理队列中的子任务进行处理。
基于上述为各任务处理队列分配多个子任务后,接下来,通过对任务处理队列对应的服务对任务处理队列中的子任务进行处理。
任务处理队列对应的服务为可实现对任务处理队列中子任务的进行处理的服务机构,例如第三方服务,外部服务。
在一种可能的实现方式中,第三方服务向业务处理系统发送任务处理请求,其中业务处理请求中包括业务种类、子任务类型等业务请求信息。业务处理系统根据业务请求信息,从任务处理队列中向第三方服务发送满足业务请求信息的子任务。第三方服务收到子任务后,对子任务进行业务处理,并将业务处理结果返回给业务处理系统。
本申请实施例提供的任务处理方法,包括:在子任务数据库中获取子任务,子任务数据库中包括多个子任务。根据子任务所属任务的任务类型,在多个缓存队列中确定目标缓存队列,并将子任务存储至目标缓存队列。确定多个缓存队列的优先级,并根据多个缓存队列的优先级、以及缓存队列中各子任务对应的子任务类型,将多个缓存队列中的子任务分配至对应的任务处理队列。针对任意一个任务处理队列,通过任务处理队列对应的服务对任务处理队列中的子任务进行处理。通过子任务数据库向多个缓存队列分发子任务,多个缓存队列向多个任务处理队列能够分发足够数量的子任务。因此在外部服务请求量突增时能够提供足够数量的子任务,这提高了任务处理的效率。
在上述实施例的基础上,下面结合一个具体的实施例对本申请提供的任务处理方法进行进一步的介绍,结合图7进行介绍,图7为本申请实施例提供的任务处理方法的流程图二。
如图7所示,该方法包括:
S701、接收客户端发送的任务处理请求,任务处理请求用于请求处理待处理任务。
客户端,又称用户端,是指对服务器相对应,为客户提供本地服务的程序。一般安装在客户机上,需要与服务端相互配合运行。客户可以通过客户端向服务器中的业务处理系统发送业务处理请求。
任务处理请求用于待处理任务,其中,任务处理请求中包括所请求的任务信息,例如任务类型、子任务类型等信息。
客户通过客户端向服务器中的业务处理系统发送任务处理请求,服务器中的业务处理系统接收到任务处理请求后,根据任务处理请求确定待处理任务。
S702、确定待处理任务对应的至少一个子任务。
在本实施例中,确定待处理任务的至少一个,即把待处理任务分成多个子任务。
接下来,可以通过如下至少两种方式将待处理任务分成多个子任务:
在一种可能的实现方式中,根据预设数量,将待处理任务平均分成任务量大小相同的预设数量份子任务。
在另一种可能的实现方式中,根据预设任务量及待处理任务的任务量,将待处理任务分成多个具有预设任务量的子任务和/或一个具有剩余任务量的子任务。其中,剩余任务量为小于预设任务量的数值。
在本实施例中,只是对确定待处理任务对应的至少一个子任务的实现方式进行示例性的介绍,并不是对确定待处理任务对应的至少一个子任务的实现方式做以限制,对确定待处理任务对应的至少一个子任务的实现方式可以根据实际需求进行选择。
S703、将至少一个子任务存储至子任务数据库。
基于步骤S702确定待处理任务对应的至少一个子任务后,将至少一个子任务存储至子任务数据库。
接下来,可以通过如下至少两种方式将至少一个子任务存储至子任务数据库:
在一种可能的实现方式中,将至少一个子任务以队列的形式存储在子任务数据库中,其中,向子任务数据库中添加子任务以及从子任务数据库中获取子任务,均需遵循队列先进先出的规则,即最先进入子任务数据库的子任务,应该在子任务数据库向外分发子任务时最先被分发出。
在另一种可能的实现方式中,将至少一个子任务以栈的形式存储在子任务数据库中,其中,向子任务数据库中添加子任务以及从子任务数据库中获取子任务,均需遵循栈先进后出的规则,即最先进入子任务数据库的子任务,应该在子任务数据库向外分发子任务时最后被分发出。
在本实施例中,只是对将至少一个子任务存储至子任务数据库的实现方式进行示例性的介绍,并不是对将至少一个子任务存储至子任务数据库的实现方式做以限制,对将至少一个子任务存储至子任务数据库的实现方式可以根据实际需求进行选择。
S704、获取子任务数据库中各子任务的处理等待时长。
处理等待时长,为子任务对应的处理容忍时长,即子任务必须在处理容忍时长之内被处理。需要说明的是,当子任务的处理等待时长快要到达时,该子任务的优先级自动被升高,以使该子任务在处理等待时长之内得到快速处理。
接下来,可以通过如下至少两种方式获取子任务数据库中各子任务的处理等待时长:
在一种可能的实现方式中,根据子任务的任务量大小为各个子任务设置对应的处理等待时长。具体的,以任务量的基本单位为基准,每单位的任务量对应的处理等待时长为单位处理等待时长,因此,各子任务对应的处理等待时长为各任务对应的任务量与单位处理等待时长之积,即任务量越大的子任务对应处理等待时长越长。
在另一种可能的实现方式中,将同一种业务类型对应的子任务的等待时长设置为固定值,且业务种类对应的优先级越高则该业务类型下的子任务的处理等待时长越小。
在本实施例中,只是对获取子任务数据库中各子任务的处理等待时长的实现方式进行示例性的介绍,并不是对获取子任务数据库中各子任务的处理等待时长的实现方式做以限制,对获取子任务数据库中各子任务的处理等待时长的实现方式可以根据实际需求进行选择。
S705、按照处理等待时长从小到大的顺序,对子任务数据库中的子任务进行排序。
在本实施例中,根据子任务数据中各子任务对应的处理等待时长的大小,对任务数据库中的子任务进行排序。
接下来,可以通过如下至少两种方式对子任务数据库中的子任务进行排序:
在一种可能的实现方式中,按照各子任务对应的处理等待时长从小到大的顺序,对子任务数据库中的子任务进行排序。即子任务对应的处理等待时长越小,则排在子任务数据库的最前面,以保证处理等待时长小对应的子任务能够在第一时间从子任务数据库中被分发出。
在另一种可能的实现方式中,将子任务以两个队列的存储形式存储在子任务数据库中,其中此两个队列分别为实时性子任务队列和非实时性子任务队列。其中,实时性子任务队列中存储处理等待时长小于或等于预设时长的子任务,而非实时性子任务队列中存储理等待时长大于预设时长的子任务。
在本实施例中,只是对子任务数据库中的子任务进行排序的实现方式进行示例性的介绍,并不是对子任务数据库中的子任务进行排序的实现方式做以限制,对子任务数据库中的子任务进行排序的实现方式可以根据实际需求进行选择。
S706、按照排序后的顺序,在子任务数据库中获取子任务。
基于步骤S705对子任务数据库中的子任务进行排序后,接下来从子任务数据库中获取子任务。
接下来,可以通过如下至少两种方式在子任务数据库中获取子任务:
在一种可能的实现方式中,定时从子任务数据对应的子任务队列中,获取一定数量的子任务。例如,每个30秒,从子任务数据库对应的子任务队列中获取20个子任务。
在另一种可能的实现方式中,从子任务数据库中获取预设数量个子任务,具体的,先从子任务数据库对应的实时性子任务队列中获取子任务。假设当前实时性子任务队列的子任务数量为第七数量,若第七数量大于或等于预设数量,则从实时性子任务队列获取预设数量个子任务。若第七数量小于预设数量,则先获取实时性子任务队列中所有的子任务后,再从非实时性获取第八数量个子任务,其中,第八数量的数值为预设数量与第七数量的差值。
在本实施例中,只是对在子任务数据库中获取子任务的实现方式进行示例性的介绍,并不是对在子任务数据库中获取子任务的实现方式做以限制,对在子任务数据库中获取子任务的实现方式可以根据实际需求进行选择。
S707、根据子任务所属任务的任务类型,在多个缓存队列中确定目标缓存队列,并将子任务存储至目标缓存队列。
基于步骤S706获取预设数量个子任务后,接下来,将子任务存储(分发)至多个缓存队列,其中,各个缓存队列对应存储不同任务类型的子任务,即各个缓存队列对应不同的任务类型。
在本实施例中,首先,根据子任务所属任务的任务类型,在多个缓存队列中确定目标缓存队列。
在一种可能的实现方式中,根据子任务所属任务的任务类型,在多个缓存队列中找到与该子任务所属任务的任务类型相同的缓存队列,并将该缓存队列确定为该子任务对应的目标缓存队列,并将子任务存储至该目标缓存队列中。
在本实施例中,只是对确定目标缓存队列的实现方式进行示例性的介绍,并不是对确定目标缓存队列的实现方式做以限制,对确定目标缓存队列的实现方式可以根据实际需求进行选择。
S708、确定多个缓存队列的优先级。
基于步骤S707将多个子任务存储至多个缓存队列后,接下来,将多个缓存队列中的子任务分发至多个任务处理队列中,在从多个缓存队列中将子任务分发至多个任务处理队列中,需要先确定多个缓存队列各自的优先级。先从优先级高的缓存队列中将子任务分发至多个任务处理队列,直至将该缓存的队列的多个子任务分配完或者该缓存队列中预设子任务类型对应的子任务已经被分发完,则接下来从相比该缓存队列优先级次之的缓存队列开始向多个任务处理队列分发子任务。
接下来,可以通过如下至少两种方式确定多个缓存队列的优先级:
在一种可能的实现方式中,根据业务处理系统默认的业务类型优先级,确定各个业务类型所对应的缓存队列的优先级。其中,各缓存队列的优先级与各缓存队列对应的业务类型的优先级一致。根据业务种类对多个缓存队列设定优先级,这能够保证优先级高的子业务能够得到及时处理。
在另一种可能的实现中,根据业务处理需要对业务类型的优先级进行了调整,因此将根据调整后的业务类型来确定各个业务类型所对应的缓存队列的优先级。各缓存队列的优先级与调整后各缓存队列对应的业务类型的优先级一致。根据业务处理需要对业务类型的优先级进行调整,进而调整了多个缓存队列的优先级,这使得业务处理的灵活性更高,更能够满足业务处理需求。
下面,结合图8,通过具体示例,对确定目标缓存队列的实现方式进行示例性的说明,图8为本申请实施例提供的确定多个缓存队列的优先级的示意图。
如图8所示,总共包括5个缓存队列,分别为:缓存队列1、缓存队列2、缓存队列3、缓存队列4及缓存队列5分别对应的业务类型为业务类型1、业务类型2、业务类型3、业务类型4及业务类型5。假定,业务处理系统默认的业务类型优先级从高到低依次为:业务类型3、业务类型2、业务类型5、业务类型1及业务类型4。因此,可以理解的是,可以确定缓存队列的优先级从高到底依次为:缓存队列3、缓存队列2、缓存队列5、缓存队列1、缓存队列4。若根据用户需求,业务类型对应的优先级发生改变。例如,优先级改变后的业务类型优先级从高到低依次为:业务类型4、业务类型1、业务类型2、业务类型3及业务类型5。因此,缓存队列的优先级从高到低依次为:缓存队列4、缓存队列1、缓存队列2、缓存队列3及缓存队列5。
其中,根据业务种类对多个缓存队列设定优先级,这能够保证优先级高的子业务能够得到及时处理,同时,当业务类型的优先级改变后,可以及时调整各业务类型对应的缓存队列的优先级,从而在从多个缓存队列向多个任务处理队列分发子任务的过程中,使得优先级高的子任务得到及时的分发。
在本实施例中,只是对确定多个缓存队列的优先级的实现方式进行示例性的介绍,并不是对确定多个缓存队列的优先级的实现方式做以限制,对确定多个缓存队列的优先级的实现方式可以根据实际需求进行选择。
确定多个缓存队列的优先级的方式和步骤S203中确定多个缓存队列的优先级的具体实现方式类似,在此不再赘述。
S709、获取第i个缓存队列中各子任务对应的子任务类型,根据各子任务对应的子任务类型,确定各子任务对应的任务处理队列,并将各子任务分配至对应的任务处理队列。
其中,所述i依次取1、2、……、N,所述N为所述多个缓存队列的数量,第i个缓存队列的优先级大于第i+1个缓存队列的优先级。
需要强调说明的一点是,各个任务处理队列对应不同的子任务类型,即在各个任务处理队列中的所有子任务对应的子任务类型均为同一子任务类型。
在本实施例中,从多个缓存队列中分发子任务至多个任务处理队列中时,需要注意的是,按照缓存队列的优先级从高到低,依次确定缓存队列。确定缓存队列后,将该缓存队列中的多个子任务分发至多个任务处理队列时,应首先获取第i个缓存队列中各子任务对应的子任务类型。
在一种可能的实现方式中,针对任意一个子任务,将从多个任务处理队列中找出任务处理队列对应的子任务队列与该子任务对应的子任务类型相同的任务处理队列,并将该子任务存储至该任务处理队列中。
在本实施例中,只是对确定各子任务对应的任务处理队列的实现方式进行示例性的介绍,并不是对确定各子任务对应的任务处理队列的实现方式做以限制,对确定各子任务对应的任务处理队列的实现方式可以根据实际需求进行选择。
S710、针对任意一个任务处理队列,通过任务处理队列对应的服务对任务处理队列中的子任务进行处理。
其中,步骤S710与步骤S204的具体实现方式类似,在此不再赘述。
本申请实施例提供的任务处理方法,包括:接收客户端发送的任务处理请求,任务处理请求用于请求处理待处理任务。确定待处理任务对应的至少一个子任务。将至少一个子任务存储至子任务数据库。获取子任务数据库中各子任务的处理等待时长。按照处理等待时长从小到大的顺序,对子任务数据库中的子任务进行排序。按照排序后的顺序,在子任务数据库中获取子任务。根据子任务所属任务的任务类型,在多个缓存队列中确定目标缓存队列,并将子任务存储至目标缓存队列。确定多个缓存队列的优先级。获取第i个缓存队列中各子任务对应的子任务类型,根据各子任务对应的子任务类型,确定各子任务对应的任务处理队列,并将各子任务分配至对应的任务处理队列。其中,i依次取1、2、……、N,N为多个缓存队列的数量,第i个缓存队列的优先级大于第i+1个缓存队列的优先级。针对任意一个任务处理队列,通过任务处理队列对应的服务对任务处理队列中的子任务进行处理。根据业务种类对多个缓存队列设定优先级,这能够保证优先级高的子业务能够得到及时处理,同时,当业务类型的优先级改变后,可以及时调整各业务类型对应的缓存队列的优先级,从而在从多个缓存队列向多个任务处理队列分发子任务的过程中,使得优先级高的子任务得到及时的分发。
图9为本申请实施例提供的任务处理装置的结构示意图。如图9所示,该装置900包括:获取模块901、确定模块902、分配模块903以及处理模块904。
获取模块901,用于在所述子任务数据库中获取子任务,所述子任务数据库中包括多个子任务;
确定模块902,用于根据所述子任务所属任务的任务类型,在所述多个缓存队列中确定目标缓存队列,并将所述子任务存储至所述目标缓存队列;
分配模块903,用于确定所述多个缓存队列的优先级,并根据所述多个缓存队列的优先级、以及所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列;
处理模块904,用于针对任意一个任务处理队列,通过所述任务处理队列对应的服务对所述任务处理队列中的子任务进行处理。
在一种可能的设计中,所述分配模块903具体用于:
按照优先级从高到底的顺序,依次根据所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列。
在一种可能的设计中,所述分配模块903具体用于:
获取第i个缓存队列中各子任务对应的子任务类型,根据各所述子任务对应的子任务类型,确定各所述子任务对应的任务处理队列,并将各所述子任务分配至对应的任务处理队列;
其中,所述i依次取1、2、……、N,所述N为所述多个缓存队列的数量,第i个缓存队列的优先级大于第i+1个缓存队列的优先级。
在一种可能的设计中,所述获取模块901具体用于:
获取所述子任务数据库中各子任务的处理等待时长;
根据所述子任务数据库中各子任务的处理等待时长,在所述子任务数据库中获取待处理的子任务。
在一种可能的设计中,所述获取模块901具体用于:
按照处理等待时长从小到大的顺序,对所述子任务数据库中的子任务进行排序;
按照排序后的顺序,在所述子任务数据库中获取子任务。
在一种可能的设计中,所述装置还包括存储模块905,所述存储模块905具体用于:
接收客户端发送的任务处理请求,所述任务处理请求用于请求处理待处理任务;
确定所述待处理任务对应的至少一个子任务;
将所述至少一个子任务存储至所述子任务数据库。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图10为本申请实施例提供的任务处理设备的硬件结构示意图,如图10所示,本实施例的任务处理设备1000包括:处理器1001以及存储器1002;其中
存储器1002,用于存储计算机执行指令;
处理器1001,用于执行存储器存储的计算机执行指令,以实现上述实施例中任务处理方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器1002既可以是独立的,也可以跟处理器1001集成在一起。
当存储器1002独立设置时,该任务处理设备还包括总线1003,用于连接所述存储器1002和处理器1001。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上任务处理设备所执行的任务处理方法。
本申请实施例还提供一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种任务处理方法,其特征在于,应用于业务处理系统,所述业务处理系统包括子任务数据库、多个缓存队列和多个任务处理队列,包括:
在所述子任务数据库中获取子任务,所述子任务数据库中包括多个子任务;
根据所述子任务所属任务的任务类型,在所述多个缓存队列中确定目标缓存队列,并将所述子任务存储至所述目标缓存队列;
确定所述多个缓存队列的优先级,并根据所述多个缓存队列的优先级、以及所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列;
针对任意一个任务处理队列,通过所述任务处理队列对应的服务对所述任务处理队列中的子任务进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个缓存队列的优先级、以及所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列,包括:
按照优先级从高到底的顺序,依次根据所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列。
3.根据权利要求2所述的方法,其特征在于,所述按照优先级从高到底的顺序,依次根据所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列,包括:
获取第i个缓存队列中各子任务对应的子任务类型,根据各所述子任务对应的子任务类型,确定各所述子任务对应的任务处理队列,并将各所述子任务分配至对应的任务处理队列;
其中,所述i依次取1、2、……、N,所述N为所述多个缓存队列的数量,第i个缓存队列的优先级大于第i+1个缓存队列的优先级。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述在子任务数据库中获取子任务,包括:
获取所述子任务数据库中各子任务的处理等待时长;
根据所述子任务数据库中各子任务的处理等待时长,在所述子任务数据库中获取待处理的子任务。
5.根据权利要求4所述的方法,其特征在于,所述根据所述子任务数据库中各子任务的处理等待时长,在所述子任务数据库中获取子任务,包括:
按照处理等待时长从小到大的顺序,对所述子任务数据库中的子任务进行排序;
按照排序后的顺序,在所述子任务数据库中获取子任务。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述在所述子任务数据库中获取子任务之前,还包括:
接收客户端发送的任务处理请求,所述任务处理请求用于请求处理待处理任务;
确定所述待处理任务对应的至少一个子任务;
将所述至少一个子任务存储至所述子任务数据库。
7.一种任务处理装置,其特征在于,应用于业务处理系统,所述业务处理系统包括子任务数据库、多个缓存队列和多个任务处理队列,包括:
获取模块,用于在所述子任务数据库中获取子任务,所述子任务数据库中包括多个子任务;
确定模块,用于根据所述子任务所属任务的任务类型,在所述多个缓存队列中确定目标缓存队列,并将所述子任务存储至所述目标缓存队列;
分配模块,用于确定所述多个缓存队列的优先级,并根据所述多个缓存队列的优先级、以及所述缓存队列中各子任务对应的子任务类型,将所述多个缓存队列中的子任务分配至对应的任务处理队列;
处理模块,用于针对任意一个任务处理队列,通过所述任务处理队列对应的服务对所述任务处理队列中的子任务进行处理。
8.一种任务处理设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至6中任一所述的方法。
9.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至6中任一所述的方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110687095.9A CN113327053A (zh) | 2021-06-21 | 2021-06-21 | 任务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110687095.9A CN113327053A (zh) | 2021-06-21 | 2021-06-21 | 任务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113327053A true CN113327053A (zh) | 2021-08-31 |
Family
ID=77424134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110687095.9A Pending CN113327053A (zh) | 2021-06-21 | 2021-06-21 | 任务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113327053A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118768A (zh) * | 2022-06-27 | 2022-09-27 | 平安壹钱包电子商务有限公司 | 一种任务分发方法、装置、存储介质及电子设备 |
WO2023226716A1 (zh) * | 2022-05-24 | 2023-11-30 | 华为技术有限公司 | 数据包发送方法、转发节点、发送端及存储介质 |
CN118170521A (zh) * | 2024-04-11 | 2024-06-11 | 北京壁仞科技开发有限公司 | 任务分配方法与任务分配装置 |
-
2021
- 2021-06-21 CN CN202110687095.9A patent/CN113327053A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023226716A1 (zh) * | 2022-05-24 | 2023-11-30 | 华为技术有限公司 | 数据包发送方法、转发节点、发送端及存储介质 |
CN115118768A (zh) * | 2022-06-27 | 2022-09-27 | 平安壹钱包电子商务有限公司 | 一种任务分发方法、装置、存储介质及电子设备 |
CN118170521A (zh) * | 2024-04-11 | 2024-06-11 | 北京壁仞科技开发有限公司 | 任务分配方法与任务分配装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649664B2 (en) | Method and device for scheduling virtual disk input and output ports | |
CN107800768B (zh) | 开放平台控制方法和系统 | |
US5887168A (en) | Computer program product for a shared queue structure for data integrity | |
CN107688492B (zh) | 资源的控制方法、装置和集群资源管理系统 | |
US6532501B1 (en) | System and method for distributing output queue space | |
EP1253516A2 (en) | Apparatus and method for scheduling processes on a fair share basis | |
CN113327053A (zh) | 任务处理方法及装置 | |
CN109799956B (zh) | 一种存储控制器及io请求处理方法 | |
JP2016195375A5 (zh) | ||
US20140108458A1 (en) | Network filesystem asynchronous i/o scheduling | |
CN112888005A (zh) | 一种面向mec的分布式业务调度方法 | |
CN111221631A (zh) | 一种任务调度方法、装置及存储介质 | |
CN108388409B (zh) | 打印请求处理方法、装置、计算机设备和存储介质 | |
CN115640113A (zh) | 多平面弹性调度方法 | |
CN116881003A (zh) | 资源分配方法、装置、服务设备及存储介质 | |
CN114116184B (zh) | 虚拟场景中的数据处理方法及装置、设备、介质 | |
CN110073321B (zh) | 一种存储控制器及io请求处理方法 | |
CN114489463B (zh) | 动态调整存储卷qos的方法、装置及计算设备 | |
CN114661415A (zh) | 调度方法及计算机系统 | |
CN111858019B (zh) | 任务调度方法、装置及计算机可读存储介质 | |
CN115809014A (zh) | 一种调度控制方法、设备及计算机存储介质 | |
CN108683608B (zh) | 分配流量的方法和装置 | |
JP2013206041A (ja) | 通信システム及び負荷分散処理装置 | |
CN116431327B (zh) | 一种任务限流处理方法及堡垒机 | |
US7222178B2 (en) | Transaction-processing performance by preferentially reusing frequently used processes |
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 |