CN113449994A - 任务单的分配方法、装置、电子设备、介质和程序产品 - Google Patents
任务单的分配方法、装置、电子设备、介质和程序产品 Download PDFInfo
- Publication number
- CN113449994A CN113449994A CN202110729910.3A CN202110729910A CN113449994A CN 113449994 A CN113449994 A CN 113449994A CN 202110729910 A CN202110729910 A CN 202110729910A CN 113449994 A CN113449994 A CN 113449994A
- Authority
- CN
- China
- Prior art keywords
- queue
- processing
- target
- task list
- sub
- 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
- 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/06316—Sequencing of tasks or work
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开提供任务单的分配方法、装置、电子设备、介质和程序产品,可用于金融领域或其他领域。该方法包括:响应于接收到目标用户针对指定业务的目标任务单,获取用于表征目标用户的用户优先级的用户标识;获取预先创建的包含处理优先级高的第一处理队列和处理优先级低的第二处理队列候选处理队列集,第二处理队列包含预先配置有不同权重的多个子队列;响应于用户标识表征目标用户的用户优先级高,将目标任务单分配给第一处理队列来存放目标任务单;响应于用户标识表征目标用户的用户优先级低,获取用于表征指定业务的业务优先级的业务标识;根据业务标识和每个子队列的权重,将目标任务单分配给从多个子队列中确定出的目标子队列来存放目标任务单。
Description
技术领域
本公开涉及金融科技的技术领域,特别是涉及一种任务单的分配方法、装置、电子设备、介质和程序产品。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着近年来消费金融的不断下沉,普惠金融的不断推进,使得传统审批业务不得不逐渐地面临类互联网场景的高并发量的挑战。
但是相关技术对任务单的分配方式存在诸多不足,导致任务处理的效率低,不足以应对高并发。
发明内容
有鉴于此,为了至少部分地克服相关技术在任务单的分配解决方案中所存在的上述技术问题,本公开提供了一种应对高并发场景的任务单的分配方法、装置、电子设备、介质和程序产品。
为了实现上述目标,本公开的一个方面提供了一种任务单的分配方法,该方法可以包括:响应于接收到目标用户针对指定业务的目标任务单,获取上述目标用户的用户标识,其中,上述用户标识用于表征上述目标用户的用户优先级;获取预先创建的候选处理队列集,其中,上述候选处理队列集包含处理优先级高的第一处理队列和处理优先级低的第二处理队列,上述第二处理队列包含预先配置有不同权重的多个子队列;响应于上述用户标识表征上述目标用户的用户优先级高,将上述目标任务单分配给上述第一处理队列来存放上述目标任务单;响应于上述用户标识表征上述目标用户的用户优先级低,获取上述指定业务的业务标识,其中,上述业务标识用于表征上述指定业务的业务优先级;以及根据上述业务标识和每个子队列的权重,将上述目标任务单分配给从上述多个子队列中确定出的目标子队列来存放上述目标任务单。
根据本公开的实施例,上述任务单的分配方法还可以包括:响应于存放在上述第一处理队列中的上述目标任务单处理失败,检测上述目标任务单的重试次数是否超过第一重试次数阈值;在未超过上述第一重试次数阈值的情况下,将上述目标任务单的重试次数加一;以及将上述目标任务单移至上述第一处理队列的队尾以等待再次处理。
根据本公开的实施例,上述候选处理队列集还可以包含第三处理队列,上述任务单的分配方法还可以包括:在已超过上述第一重试次数阈值的情况下,将上述目标任务单移至上述第三处理队列。
根据本公开的实施例,上述任务单的分配方法还可以包括:响应于存放在上述第一处理队列中的上述目标任务单处理成功,将上述目标任务单移出上述第一处理队列。
根据本公开的实施例,上述任务单的分配方法还可以包括:响应于存放在上述目标子队列中的上述目标任务单处理失败,检测上述目标任务单的重试次数是否超过第二重试次数阈值;在未超过上述第二重试次数阈值的情况下,将上述目标任务单的重试次数加一;以及将上述目标任务单移至上述目标子队列的队尾以等待再次处理。
根据本公开的实施例,上述候选处理队列集还可以包含第三处理队列,上述任务单的分配方法还可以包括:在已超过上述第二重试次数阈值的情况下,将上述目标任务单移至上述第三处理队列。
根据本公开的实施例,上述任务单的分配方法还可以包括:响应于存放在上述目标子队列中的上述目标任务单处理成功,将上述目标任务单移出上述目标子队列。
根据本公开的实施例,上述任务单的分配方法还可以包括:更新上述多个子队列的权重来获得更新后的权重。
根据本公开的实施例,上述更新上述多个子队列的权重来获得更新后的权重可以包括:获取每个子队列的权重;基于上述每个子队列的权重,确定除上述目标子队列之外的非目标子队列的权重之和;根据上述目标子队列的权重与上述权重之和的差更新上述目标子队列的权重来获得更新后的权重;以及根据每个非目标子队列的权重与自身权重之和更新上述每个非目标子队列的权重来获得更新后的权重。
根据本公开的实施例,上述任务单的分配方法还可以包括:响应于将上述目标任务单移至上述第三处理队列,发送通知消息以提示对上述目标任务单执行人工处理。
为了实现上述目标,本公开的另一个方面提供了一种任务单的分配装置,该装置可以包括:第一获取模块,用于响应于接收到目标用户针对指定业务的目标任务单,获取上述目标用户的用户标识,其中,上述用户标识用于表征上述目标用户的用户优先级;第二获取模块,用于获取预先创建的候选处理队列集,其中,上述候选处理队列集包含处理优先级高的第一处理队列和处理优先级低的第二处理队列,上述第二处理队列包含预先配置有不同权重的多个子队列;第一分配模块,用于响应于上述用户标识表征上述目标用户的用户优先级高,将上述目标任务单分配给上述第一处理队列来存放上述目标任务单;第三获取模块,用于响应于上述用户标识表征上述目标用户的用户优先级低,获取上述指定业务的业务标识,其中,上述业务标识用于表征上述指定业务的业务优先级;以及第二分配模块,用于根据上述业务标识和每个子队列的权重,将上述目标任务单分配给从上述多个子队列中确定出的目标子队列来存放上述目标任务单。
根据本公开的实施例,上述任务单的分配装置还可以包括:第一检测模块,用于响应于存放在上述第一处理队列中的上述目标任务单处理失败,检测上述目标任务单的重试次数是否超过第一重试次数阈值;第一处理模块,用于在未超过上述第一重试次数阈值的情况下,将上述目标任务单的重试次数加一;以及第一移动模块,用于将上述目标任务单移至上述第一处理队列的队尾以等待再次处理。
根据本公开的实施例,上述候选处理队列集还可以包含第三处理队列,上述任务单的分配装置还可以包括:第二移动模块,用于在已超过上述第一重试次数阈值的情况下,将上述目标任务单移至上述第三处理队列。
根据本公开的实施例,上述任务单的分配装置还可以包括:第一移出模块,用于响应于存放在上述第一处理队列中的上述目标任务单处理成功,将上述目标任务单移出上述第一处理队列。
根据本公开的实施例,上述任务单的分配装置还可以包括:第二检测模块,用于响应于存放在上述目标子队列中的上述目标任务单处理失败,检测上述目标任务单的重试次数是否超过第二重试次数阈值;第二处理模块,用于在未超过上述第二重试次数阈值的情况下,将上述目标任务单的重试次数加一;以及第三移动模块,用于将上述目标任务单移至上述目标子队列的队尾以等待再次处理。
根据本公开的实施例,上述候选处理队列集还可以包含第三处理队列,上述任务单的分配装置还可以包括:第四移动模块,用于在已超过上述第二重试次数阈值的情况下,将上述目标任务单移至上述第三处理队列。
根据本公开的实施例,上述任务单的分配装置还可以包括:第二移出模块,用于响应于存放在上述目标子队列中的上述目标任务单处理成功,将上述目标任务单移出上述目标子队列。
根据本公开的实施例,上述任务单的分配装置还可以包括:第一更新模块,用于更新上述多个子队列的权重来获得更新后的权重。
根据本公开的实施例,上述第一更新模块可以包括:获取子模块,用于获取每个子队列的权重;确定子模块,用于基于上述每个子队列的权重,确定除上述目标子队列之外的非目标子队列的权重之和;第一更新子模块,用于根据上述目标子队列的权重与上述权重之和的差更新上述目标子队列的权重来获得更新后的权重;以及第二更新子模块,用于根据每个非目标子队列的权重与自身权重之和更新上述每个非目标子队列的权重来获得更新后的权重。
根据本公开的实施例,上述任务单的分配装置还可以包括:发送模块,用于响应于将上述目标任务单移至上述第三处理队列,发送通知消息以提示对上述目标任务单执行人工处理。
为了实现上述目标,本公开的另一方面提供了一种电子设备,包括:一个或多个处理器,存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的任务单的分配方法。
为了实现上述目标,本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的任务单的分配方法。
为了实现上述目标,本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现如上所述的任务单的分配方法。
根据本公开的任务单的分配方法,通过预先创建包含有处理优先级高的第一处理队列和处理优先级低的第二处理队列的候选处理队列集,根据用户优先级的高低和业务优先级的高低,将目标任务单分配给不同处理优先级的队列,可以优先按照用户优先级处理,然后再按照业务优先级处理,可以至少部分地解决/减轻/抑制/甚至避免相关技术中对任务单的分配方式存在诸多不足,导致任务处理的效率低,不足以应对高并发场景的问题,并因此可以实现提高任务处理效率,有效应对高并发场景中海量任务单高效分配的效果。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性示出了适用于本公开实施例的任务单的分配方法、装置、电子设备、介质和程序产品的***架构;
图2示意性示出了适用于本公开实施例的任务单的分配方法、装置、电子设备、介质和程序产品的应用场景;
图3示意性示出了根据本公开实施例的任务单的分配方法的流程图;
图4示意性示出了根据本公开另一实施例的任务单的分配方法的流程图;
图5示意性示出了根据本公开实施例的任务单的分配装置的框图;
图6示意性示出了根据本公开实施例的适于实现上文描述的任务单的分配方法的计算机可读存储介质产品的示意图;以及
图7示意性示出了根据本公开实施例的适于实现上文描述的任务单的分配方法的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
应该注意的是,附图并未按比例绘制,并且出于说明目的,在整个附图中类似结构或功能的元素通常用类似的附图标记来表示。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程任务单的分配装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
相关技术中对任务单的分配方式存在诸多不足,导致任务单的处理的效率低,不足以应对高并发场景。
因此,本公开提供了一种足以应对高并发场景的任务单的分配方法、装置、电子设备、介质和程序产品。该任务单的分配方法可以包括数据获取过程和任务分配过程。其中在数据获取过程中,首先响应于接收到目标用户针对指定业务的目标任务单,获取用于表征目标用户的用户优先级的用户标识,然后获取预先创建的候选处理队列集,该候选处理队列集包含处理优先级高的第一处理队列和处理优先级低的第二处理队列,第二处理队列包含预先配置有不同权重的多个子队列。在数据获取完成之后,进入任务分配过程,可以在用户标识表征目标用户的用户优先级高的情况下,直接将目标任务单分配给第一处理队列来存放目标任务单,也可以在用户标识表征目标用户的用户优先级低的情况下,先获取指定业务的业务标识,该业务标识用于表征指定业务的业务优先级,再根据业务标识和每个子队列的权重,将目标任务单分配给从多个子队列中确定出的目标子队列来存放目标任务单。
由于本公开所提供的任务单的分配方法,通过预先创建的包含有处理优先级高的第一处理队列和处理优先级低的第二处理队列的候选处理队列集,可以先根据用户优先级的高低,再根据业务优先级的高低,将目标任务单分配给不同处理优先级的队列,可以优先按照用户优先级处理,然后再按照业务优先级处理,可以至少部分地解决/减轻/抑制/甚至避免相关技术中对任务单的分配方式存在诸多不足,导致任务处理的效率低,不足以应对高并发场景的问题,并因此可以实现提高任务处理效率,有效应对高并发场景的技术效果。
需要说明的是,本公开所提供的任务单的分配方法、装置、电子设备、介质和程序产品可用于金融领域中,也可用于除金融领域之外的任意领域中。因此,对本公开所提供的任务单的分配方法、装置、电子设备、介质和程序产品的应用领域不做限定。
图1示意性示出了适用于本公开实施例的任务单的分配方法、装置、电子设备、介质和程序产品的***架构100。需要注意的是,图1所示仅为可应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的任务单的分配方法一般可以由服务器105执行。相应地,本公开实施例所提供的任务单的分配装置一般可以设置于服务器105中。本公开实施例所提供的任务单的分配方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的任务单的分配装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了适用于本公开实施例的任务单的分配方法、装置、电子设备、介质和程序产品的应用场景。
如图2所示,在高并发处理任务单的应用场景200中,为了提高任务单的处理效率,通常将任务单存放在队列中,以顺序执行处理,与相关技术的任务单分配方法不同的是,本公开通过不同的用户优先级和业务优先级,针对不同类型的任务单的处理优先级,采用多队列区别处理的解决方案。多队列包括预先创建第一处理队列QA、第二处理队列QB、以及第三处理队列QC。其中第一处理队列QA用于存放要客的任务单,第二处理队列QB用于存放需要区分业务优先级的任务单,第三处理队列QC用于存放在第一处理队列QA和第二处理队列QB中重试次数达到上限,需要人工处理的任务单。由于要客是众多用户中较为优质、且非常重要的用户,其对应的任务单需要优先处理,因此第一处理队列QA的处理优先级高于第二处理队列QB的处理优先级,也就是在第一处理队列QA和第二处理队列QB中均存放有任务单的情况下,优先处理第一处理队列QA中存放的任务单,待第一处理队列QA中不存在需要处理的任务单的情况下,才开始处理第二处理队列QB中存放的任务单。
第二处理队列QB包含多个预先配置有不同权重的子队列,例如QB可以包含3个子队列,分别为Q1、Q2、Q3,预先配置的权重分别为2、3、4。权重越高处理优先级越高。
需要说明的是,可以为第一处理队列QA、第二处理队列QB包含的多个子队列、以及第三处理队列QC中的每个队列设置对应的队列深度,可以相同,也可以不相同,考虑到要客的任务单数量比非要客的任务单的数量少,因此第一处理队列QA的深度一般小于第二处理队列QB的深度,队列深度的具体数值可以根据任务单的具体数量和业务场景需要自行设定,本公开不做具体限定。
图3示意性示出了根据本公开实施例的任务单的分配方法的流程图。如图3所示,该方法300可以包括操作S310~操作S350。
在操作S310,响应于接收到目标用户针对指定业务的目标任务单,获取目标用户的用户标识。
根据本公开的实施例,用户标识用于表征目标用户的用户优先级。目标用户是针对指定业务提交目标任务单的用户,目标用户可以是要客,也可以是非要客。要客的用户优先级高,非要客的用户优先级低。要客可以是在业务场景中符合一定要求的客户。要客的界定、指定业务以及目标任务单均与具体的业务场景有关。例如针对银行***的业务场景,要客指的是在该银行的资产达到一定数额(例如五百万),或者征信记录好、参与该银行的业务较多的客户,指定业务可以是***的申请业务,目标任务单可以是要客提交的***申请的申请订单,也可以是非要客提交的***申请的申请订单。任务单可以包含任务标识,也可以包含任务明细,任务明细用于表征任务的具体内容。
在本公开中,队列指的是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行***操作,和栈一样,队列是一种操作受限制的线性表。进行***操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中***一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端***,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first infirst out)线性表。可以是内存队列,可以是消息队列,本公开对此不做限定。
在操作S320,获取预先创建的候选处理队列集。
根据本公开的实施例,利用多个处理队列来存放来自用户的任务单。候选处理队列集包含处理优先级高的第一处理队列和处理优先级低的第二处理队列,第二处理队列包含预先配置有不同权重的多个子队列。不同权重对应不同的处理优先级,子队列的权重越大,处理优先级越高。第二处理队列所包含的子队列的数量可以根据业务优先级的级别数量设定,两者可以相同,也可以不相同,即子队列的数量可以大于业务优先级的级别数量。业务优先级的级别数量为高级和低级2个等级,第二处理队列可以包含2个子队列,也可以包含3个子队列。例如,第二处理队列可以包含2个子队列,分别为Q1、Q2,预先配置的权重分别为2、3,那么按照权重从大到小的顺序,优先处理Q2中存放的任务单,然后处理Q1中存放的任务单。第二处理队列也可以包含3个子队列,分别为Q1、Q2、Q3,预先配置的权重分别为2、3、4,那么按照权重从大到小的顺序,优先处理Q3中存放的任务单,然后处理Q2中存放的任务单,最后处理Q1中存放的任务单。创建顺序队列结构必须为其静态分配或动态申请一片连续的存储空间,并设置两个指针进行管理。一个是队头指针front,它指向队头元素;另一个是队尾指针rear,它指向下一个入队元素的存储位置,具体的创建方法本公开不做限定,本领域技术人员可自行选择。
在操作S330,响应于用户标识表征目标用户的用户优先级高,将目标任务单分配给第一处理队列来存放目标任务单。
根据本公开的实施例,用户标识表征目标用户的用户优先级高,则表明该目标用户为要客,其任务单需要优先处理,所以将目标任务单分配给第一处理队列。
在操作S340,响应于用户标识表征目标用户的用户优先级低,获取指定业务的业务标识。
根据本公开的实施例,业务标识用于表征指定业务的业务优先级。以指定业务可以是***的申请业务为例,业务标识可以申请的***的卡种标识,对应不同的卡种匹配不同的业务优先级。例如卡种为新品***卡种和旧品***卡种,为了实现新品推荐的目的,可以配置新品***卡种的业务优先级高于旧品***卡种的业务优先级,这样针对新品***的审批申请任务单,可以比旧品***的审批申请任务单优先处理。
在操作S350,根据业务标识和每个子队列的权重,将目标任务单分配给从多个子队列中确定出的目标子队列来存放目标任务单。
根据本公开的实施例,可以根据第二处理队列所包含的多个子队列预先配置的不同权重来存放不同业务优先级的任务单,使得业务优先级高的任务单可以存放在权重高的子队列中。在业务优先级的级别数量为高级和低级2个等级,第二处理队列包含Q1、Q2这2个子队列的情况下,可以将子队列Q2作为从多个子队列中确定出的目标子队列,在第二处理队列包含Q1、Q2、Q3这3个子队列的情况下,可以将Q3作为从多个子队列中确定出的目标子队列。
通过本公开的实施例提供的任务单的分配方法,通过预先创建包含有处理优先级高的第一处理队列和处理优先级低的第二处理队列的候选处理队列集,根据用户优先级的高低和业务优先级的高低,将目标任务单分配给不同处理优先级的队列,可以优先按照用户优先级处理,然后再按照业务优先级处理,可以至少部分地解决/减轻/抑制/甚至避免相关技术中对任务单的分配方式存在诸多不足,导致任务处理的效率低,不足以应对高并发场景的问题,并因此可以实现提高任务处理效率,有效应对高并发场景的技术效果。
作为一种可选的实施例,任务单的分配方法还可以包括:响应于存放在第一处理队列中的目标任务单处理失败,检测目标任务单的重试次数是否超过第一重试次数阈值;在未超过第一重试次数阈值的情况下,将目标任务单的重试次数加一;以及将目标任务单移至第一处理队列的队尾以等待再次处理。
根据本公开的实施例,第一处理队列中的任务单是顺序处理的,即按照任务单被存放到第一处理队列中的时间顺序依次执行,越早存放的任务单,越早被执行处理,这样可以保证第一处理队列中的所有任务可以都被执行一次。
在具体实施时,目标任务单的执行结果可能失败,可能成功。在执行失败的情况下,可以重试以再次执行该目标任务单,但是为了避免出现无限次数的重试,占满第一处理队列的情况,本公开可以预先设定第一重试次数阈值,该阈值为重试的最大次数,因此在重试次数未超过该阈值的情况下,可以将该目标任务单移至第一处理队列的队尾以等待再次处理。
作为一种可选的实施例,候选处理队列集还可以包含第三处理队列,任务单的分配方法还可以包括:在已超过第一重试次数阈值的情况下,将目标任务单移至第三处理队列。
为了避免出现目标任务单再次存入第一处理队列的情况,根据本公开的实施例,在重试次数已超过该阈值的情况下,将目标任务单移至第三处理队列来人工处理。
作为一种可选的实施例,任务单的分配方法还可以包括:响应于存放在第一处理队列中的目标任务单处理成功,将目标任务单移出第一处理队列。
根据本公开的实施例,为了避免出现处理成功的目标任务单对第一处理队列占用的情况,将其移出第一处理队列,这样可以释放对第一处理队列的资源占用,缓解处理压力。
作为一种可选的实施例,任务单的分配方法还可以包括:响应于存放在目标子队列中的目标任务单处理失败,检测目标任务单的重试次数是否超过第二重试次数阈值;在未超过第二重试次数阈值的情况下,将目标任务单的重试次数加一;以及将目标任务单移至目标子队列的队尾以等待再次处理。
根据本公开的实施例,目标任务单的执行结果可能失败,可能成功。在执行失败的情况下,可以重试以再次执行该目标任务单,但是为了避免出现无限次数的重试,占满目标子队列的情况,本公开可以预先设定第二重试次数阈值,该阈值为重试的最大次数,因此在重试次数未超过该阈值的情况下,可以将该目标任务单移至目标子队列的队尾以等待再次处理。
作为一种可选的实施例,候选处理队列集还可以包含第三处理队列,任务单的分配方法还可以包括:在已超过第二重试次数阈值的情况下,将目标任务单移至第三处理队列。
为了避免出现目标任务单再次存入目标子队列的情况,根据本公开的实施例,在重试次数已超过该阈值的情况下,将目标任务单移至第三处理队列来人工处理。第二重试次数阈值与第一重试次数阈值可以相同,也可以不相同,本公开不做限定。
作为一种可选的实施例,任务单的分配方法还可以包括:响应于存放在目标子队列中的目标任务单处理成功,将目标任务单移出目标子队列。
根据本公开的实施例,为了避免出现处理成功的目标任务单对在目标子队列占用的情况,将其移出在目标子队列,这样可以释放对在目标子队列的资源占用,缓解处理压力。
作为一种可选的实施例,任务单的分配方法还可以包括:更新多个子队列的权重来获得更新后的权重。
根据本公开的实施例,由于目标子队列是根据多个子队列配置的初始权重与目标任务单的业务优先级之间的关系确定出来的,在目标任务单处理成功的情况下,为了保证初始权重低的子队列中存放的任务单也能够被执行处理,本公开提供了一种权重更新方法。
作为一种可选的实施例,更新多个子队列的权重来获得更新后的权重可以包括:获取每个子队列的权重;基于每个子队列的权重,确定除目标子队列之外的非目标子队列的权重之和;根据目标子队列的权重与权重之和的差更新目标子队列的权重来获得更新后的权重;以及根据每个非目标子队列的权重与自身权重之和更新每个非目标子队列的权重来获得更新后的权重。
在具体实施时,在包含有Q1、Q2、Q3这3个子队列的第二处理队列中,预先配置的权重分别为2、3、4。目标用户为非要客,目标任务单为申请新品***的申请单。那么权重为4的Q3为被选中的目标子队列,而权重为2的Q1、权重为3的Q2为未被选中的非目标子队列,可以确定出未被选中的非目标子队列的权重之和为5。那么根据本公开提供的加权轮询算法,Q1更新后的权重为更新前的权重2加上自身权重2等于4,Q2更新后的权重为更新前的权重3加上自身权重3等于6,而Q3更新后的权重为更新前的权重4减去未被选中的子队列的权重之和5等于-1。需要说明的是,本公开所提供的权重更新算法仅仅是示意性地,并非对更新算法的具体限定,本领域技术人员可以根据业务场景的实际需要自行选择适应的算法来实现第二处理队列中各子队列权重的更新,以保证低优先级的子队列也能够被执行。
通过本公开提供的加权轮询算法,可以对子队列预先配置的权重进行更新,使得子队列的权重随着任务单的处理,动态变化,这样可以保证低优先级的子队列中存放的任务单也可以被执行,而不被“饿死”,是一种公平合理的权重更新方法。
作为一种可选的实施例,任务单的分配方法还可以包括:响应于将目标任务单移至第三处理队列,发送通知消息以提示对目标任务单执行人工处理。
根据本公开的实施例,在第一处理队列和第二处理队列中,达到重试次数依然未能成功处理的目标任务单被移至第三处理队列之后,为了及时进行人工处理,可以发送通知消息以使得相关的人员可以在接收到通知消息后,及时对其进行处理,以缩短处理时长,尽快给用户反馈处理结果。例如可以以短信、邮件、微信等方式,将目标任务单的单号、任务明细、失败原因等内容发送给任务审批人员的终端设备。具体消息的发送形式和内容本公开不做限定,本领域技术人员可以根据业务场景的实际需要,自行设定需要发送的消息形式和内容。
以下将以第一处理队列为要客处理队列、第二处理队列为加权轮询队列,第三处理队列为人工处理队列,加权轮询队列包括3个子队列,分别为Q1、Q2、Q3,权重分别为2、3、4为例,说明本公开提供的任务单的分配方法,即基于要客优先的加权轮询队列的多队列信用审批任务的分配方法。如前所述,候选处理队列集中的多个队列可以包括要客处理队列、加权轮询队列、以及人工处理队列。其中要客处理队列用于存放要客的审批任务单。加权轮询队列用于存放需要区分业务优先级的审批任务单。人工处理队列用于存放达到重试上限的需有人工处理的审批任务单。要客处理队列在处理任务单的方法为顺序执行,以此可以保证将队列中的每一个要客任务都执行一次。加权轮询队列选择任务的方法为首先根据业务需求初始化子队列权重,然后选择权重最大的队列中第一个任务进行处理,最后更新子队列权重,选中的子队列减去未选择子队列权重和,未选中的子队列加上自身权重。人工处理队列用于存放要客处理队列和加权轮询队列多次重试失败的任务。
图4示意性示出了根据本公开另一实施例的任务单的分配方法的流程图。如图4所示,任务单的分配方法400可以包括操作S410~操作S440。
在操作S410,创建一个要客处理队列、加权轮询队列以及人工处理队列,用于存放不同业务场景的审批任务单。在具体实施时,创建要客处理队列,该队列用于存放要客的审批任务单。创建加权轮询队列,该队列用于存放需要区分业务优先级的审批任务单。创建人工处理队列,该队列用于存放达到重试上限的需有人工处理的审批任务单。
在操作S420,加载审批任务单到要客处理队列和加权轮询队列。在具体实施时,根据业务要素即用户标识选取要客审批单放入要客处理队列队尾。选取非要客审批单放入加权轮询队列中多个权重不同的子队列,非要客审批单根据业务优先级分别放入权重不同的子队列的队尾。
在操作S430,处理要客队列审批单任务。在具体实施时,首先判断要客处理队列是否为空,若要客处理队列为空,则判断加权轮询队列是否为空。若要客处理队列不为空,则选择要客处理队列中的第一个审批单任务进行处理。若该审批单任务处理成功,则移除该审批单任务,继续选择下一个审批单任务进行处理,直到要客处理队列中的每一个审批单任务被处理过一次为止。若该审批单任务处理失败,则将该审批任务单的重试次数加1,若重试次数达到业务阈值,则将该审批任务单移动到人工处理队列,若重试次数未达到业务阈值,则将该审批任务单移动到要客处理队列的队尾。
在操作S440,处理加权轮询队列审批单任务。在具体实施时,判断加权轮询队列是否为空,若加权轮询队列为空,则根据业务要素选取要客审批单放入要客处理队列队尾。若加权轮询队列不为空,则选择加权轮询队列中权重最大的子队列中的一个审批任务单进行处理,如果权重最大的子队列有多个,则可以随机选择其中的一个队列中的审批任务单进行处理。Q3为Q1、Q2、Q3中权重最大的子队列,因此可以选择Q3中一个审批任务单进行处理。若该审批单任务处理成功,则移除该审批单任务。若该审批单任务处理失败,则将该审批任务单的重试次数加1,若重试次数未达到业务阈值,则将该审批任务单移动到加权轮询队列的队尾。接着更新多个子队列的权重。具体地,计算上一步中未被选中的子队列的权重之和,选中的子队列的权重减去该权重和,未选中的子队列的权重加上自身的权重。举例说明,由于Q1、Q2、Q3中权重为2的Q1、权重为3的Q2为未被选中的子队列,所以未被选中的子队列的权重之和为5,权重为4的Q3为被选中的子队列。Q1更新后的权重为更新前的权重2加上自身权重2等于4,Q2更新后的权重为更新前的权重3加上自身权重3等于6,而Q3更新后的权重为更新前的权重4减去未被选中的子队列的权重之和5等于-1。再次根据业务要素选取要客审批单放入要客处理队列队尾。
通过本公开的实施例,使用要客处理队列、加权轮询队列以及人工处理队列解决技术背景中讨论的三种情况,实现要客业务优先处理、低优先级业务不“饿死”、无法处理业务退出的目的,提高业务处理效率和客户体验。
在相关技术提供的任务单的分配解决方案中,审批任务单分配时没有考虑到三种情况:(1)优先处理要客的情况;(2)低优先级审批任务单可能存在“饿死”的情况;(3)无法处理的审批任务单可能占满处理队列的情况。以上三种情况直使得审批业务的处理效率不高,时效性不能保证,进而导致关键的任务单处理滞后,客户的体验不佳。
为了便于理解,以下将结合信用审批业务中不同类型审批任务单的处理方法来阐明本公开任务单的分配方法的实施过程。
某银行计划开展***审批业务,要求根据要客标志区分要客和非要客,要客***审批业务优先处理,非要客***审批业务根据申请的***种进行优先级区分,当前业务部门主要推广的新品***卡种,其优先级高,以往的***卡种,其优先级低,以上措施一是确保了高价值客户体验,二是保证了主要推广的新品***卡种更快被推广,占领市场。使用本发明实现业务,具体实现过程包括队列设计与参数设置过程、任务存入队列过程、以及任务执行过程。
在队列设计与参数设置过程中,可以创建要客处理队列,可以创建加权轮询队列,根据申请的***种,加权轮询队列可以包含两个子队列,***A队列,权重为7,***B队列,权重为3,其中***A为当前业务部门主要推广的新品***卡种,优先级高,***B为以往的***卡种,其优先级低,除了创建要客处理队列和加权轮询队列之外,为了将无法处理的任务单及时退出创建要客处理队列和加权轮询队列,避免该审批单任务再次进入要客处理队列或加权轮询队列,避免无法处理审批单任务占满处理队列的情况,还可以创建人工处理队列,当该队列中有审批任务时,通知业务人员进行手工处理。同时还可以设置自动审批重试次数(例如前述第一重试次数阈值、第二重试次数阈值)为3,即当重复执行3次后,该审批任务单将会移动到人工处理队列,由业务人工处理。
在任务存入队列过程中,接收审批申请,根据要客标志确定是否将审批任务单放入到要客处理队列中,若为要客,则将审批任务单放入到要客处理队列中,若为非要客,则根据***申请的卡种来确定放入加权轮询队列中的***A队列中,还是***B队列中。若***申请的卡种为新品***卡种,则将审批任务单放入到A队列中。若***申请的卡种为以往的***卡种,则将审批任务单放入到B队列中。
在任务执行过程中,优先处理存放在要客处理队列中的审批任务单。若任务单处理失败,且累计审批次数大于3,则将该任务单移动到人工处理队列。然后选择加权轮询队列中的一个审批任务单进行处理,由于***A队列的权重7大于***B队列的权重3,所以优先选择A队列中的任务单处理,并在执行完毕后更新***A队列权重为4(***A队列更新前的权重7减去未被选中的***B队列的权重3),***B队列权重6(未被选中的***B队列的权重3加上自身权重3)。若该审批任务单执行失败,再判断该审批任务的重试次数是否大于3,若大于3,则将其移动到人工处理队列,否则将其移动到***A队列的队尾等待下次被执行。最后返回加载新任务。
本公开提供的任务单的分配方法中,引入多队列来处理审批任务的分配过程,基于要客优先的加权轮询队列的信用审批任务分配方法。采用了要客处理队列、加权轮询队列以及人工处理队列三个队列来处理审批任务单。基于要客处理队列,优先处理要客审批单任务,保证要客审批单被优先处理。在实际业务场景中,要客审批单任务量并不会特大,不会导致加权轮询队列无法得到执行的情况。基于加权轮询队列,该加权轮询队列支持参数配置其包含的子队列数,可以极大的适配业务高低优先级需求,另外该队列处理采用了加权轮询算法,保证了低优先级队列中也能得到被执行,是一种公平的轮询处理算法,保证了低优先级队列不“饿死”。增加人工处理队列,将多次重试执行仍失败的审批单任务移动到该队列,由人工进行处理,避免该审批单任务再次进入要客处理队列或加权轮询队列,避免无法处理审批单任务占满处理队列的情况。
图5示意性示出了根据本公开实施例的任务单的分配装置的框图。
如图5所示,该装置500可以包括第一获取模块510、第二获取模块520、第一分配模块530、第三获取模块540、以及第二分配模块550。
第一获取模块510,用于响应于接收到目标用户针对指定业务的目标任务单,获取目标用户的用户标识,其中,用户标识用于表征目标用户的用户优先级。可选地,第一获取模块510例如可以用于执行图3描述的操作S310,在此不再赘述。
第二获取模块520,用于获取预先创建的候选处理队列集,其中,候选处理队列集包含处理优先级高的第一处理队列和处理优先级低的第二处理队列,第二处理队列包含预先配置有不同权重的多个子队列。可选地,第二获取模块520例如可以用于执行图3描述的操作S320,在此不再赘述。
第一分配模块530,用于响应于用户标识表征目标用户的用户优先级高,将目标任务单分配给第一处理队列来存放目标任务单。可选地,第一分配模块530例如可以用于执行图3描述的操作S330,在此不再赘述。
第三获取模块540,用于响应于用户标识表征目标用户的用户优先级低,获取指定业务的业务标识,其中,业务标识用于表征指定业务的业务优先级。可选地,第三获取模块540例如可以用于执行图3描述的操作S340,在此不再赘述。
第二分配模块550,用于根据业务标识和每个子队列的权重,将目标任务单分配给从多个子队列中确定出的目标子队列来存放目标任务单。可选地,第二分配模块550例如可以用于执行图3描述的操作S350,在此不再赘述。
根据本公开的任务单的分配方法,通过预先创建包含有处理优先级高的第一处理队列和处理优先级低的第二处理队列的候选处理队列集,根据用户优先级的高低和业务优先级的高低,将目标任务单分配给不同处理优先级的队列,可以优先按照用户优先级处理,然后再按照业务优先级处理,可以至少部分地解决/减轻/抑制/甚至避免相关技术中对任务单的分配方式存在诸多不足,导致任务处理的效率低,不足以应对高并发场景的问题,并因此可以实现提高任务处理效率,有效应对高并发的技术效果。
作为一种可选的实施例,任务单的分配装置还可以包括:第一检测模块,用于响应于存放在第一处理队列中的目标任务单处理失败,检测目标任务单的重试次数是否超过第一重试次数阈值;第一处理模块,用于在未超过第一重试次数阈值的情况下,将目标任务单的重试次数加一;以及第一移动模块,用于将目标任务单移至第一处理队列的队尾以等待再次处理。
作为一种可选的实施例,候选处理队列集还可以包含第三处理队列,任务单的分配装置还可以包括:第二移动模块,用于在已超过第一重试次数阈值的情况下,将目标任务单移至第三处理队列。
作为一种可选的实施例,任务单的分配装置还可以包括:第一移出模块,用于响应于存放在第一处理队列中的目标任务单处理成功,将目标任务单移出第一处理队列。
作为一种可选的实施例,任务单的分配装置还可以包括:第二检测模块,用于响应于存放在目标子队列中的目标任务单处理失败,检测目标任务单的重试次数是否超过第二重试次数阈值;第二处理模块,用于在未超过第二重试次数阈值的情况下,将目标任务单的重试次数加一;以及第三移动模块,用于将目标任务单移至目标子队列的队尾以等待再次处理。
作为一种可选的实施例,候选处理队列集还可以包含第三处理队列,装置还可以包括:第四移动模块,用于在已超过第二重试次数阈值的情况下,将目标任务单移至第三处理队列。
作为一种可选的实施例,任务单的分配装置还可以包括:第二移出模块,用于响应于存放在目标子队列中的目标任务单处理成功,将目标任务单移出目标子队列。
作为一种可选的实施例,任务单的分配装置还可以包括:第一更新模块,用于更新多个子队列的权重来获得更新后的权重。
作为一种可选的实施例,第一更新模块可以包括:获取子模块,用于获取每个子队列的权重;确定子模块,用于基于每个子队列的权重,确定除目标子队列之外的非目标子队列的权重之和;第一更新子模块,用于根据目标子队列的权重与权重之和的差更新目标子队列的权重来获得更新后的权重;以及第二更新子模块,用于根据每个非目标子队列的权重与自身权重之和更新每个非目标子队列的权重来获得更新后的权重。
作为一种可选的实施例,任务单的分配装置还可以包括:发送模块,用于响应于将目标任务单移至第三处理队列,发送通知消息以提示对目标任务单执行人工处理。
需要说明的是,任务单的分配装置部分实施例中各模块的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与任务单的分配方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块、第二获取模块、第一分配模块、第三获取模块、第二分配模块、第一检测模块、第一处理模块、第一移动模块、第二移动模块、第一移出模块、第二检测模块、第二处理模块、第三移动模块、第四移动模块、第二移出模块、第一更新模块、获取子模块、确定子模块、第一更新子模块、第二更新子模块、以及发送模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块、第二获取模块、第一分配模块、第三获取模块、第二分配模块、第一检测模块、第一处理模块、第一移动模块、第二移动模块、第一移出模块、第二检测模块、第二处理模块、第三移动模块、第四移动模块、第二移出模块、第一更新模块、获取子模块、确定子模块、第一更新子模块、第二更新子模块、以及发送模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块、第二获取模块、第一分配模块、第三获取模块、第二分配模块、第一检测模块、第一处理模块、第一移动模块、第二移动模块、第一移出模块、第二检测模块、第二处理模块、第三移动模块、第四移动模块、第二移出模块、第一更新模块、获取子模块、确定子模块、第一更新子模块、第二更新子模块、以及发送模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现上文描述的任务单的分配方法的计算机可读存储介质产品的示意图。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在设备上运行时,程序代码用于使设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的任务单的分配方法中的前述各项操作(或步骤),例如,电子设备可以执行如图3中所示的操作S310~操作S350、如图4中所示的操作S410~操作S440。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、***或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图6所示,描述了根据本发明的实施方式的任务单的分配的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、***或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、***或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java,C++等,还包括常规的过程式程序设计语言—诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAA)或广域网(WAA)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
图7示意性示出了根据本公开实施例的适于实现上文描述的任务单的分配方法的电子设备的框图。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,根据本公开实施例的电子设备700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CNU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有电子设备700操作所需的各种程序和数据。处理器701、ROM702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本公开实施例的任务单的分配方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例图3中所示的操作S310~操作S350。电子设备也可以执行如图4中所示的操作S410~操作S440。
根据本公开的实施例,电子设备700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。***700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAA卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的任务单的分配方法,包括图3中所示的操作S310~操作S350。电子设备也可以执行如图4中所示的操作S410~操作S440。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目标,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种任务单的分配方法,包括:
响应于接收到目标用户针对指定业务的目标任务单,获取所述目标用户的用户标识,其中,所述用户标识用于表征所述目标用户的用户优先级;
获取预先创建的候选处理队列集,其中,所述候选处理队列集包含处理优先级高的第一处理队列和处理优先级低的第二处理队列,所述第二处理队列包含预先配置有不同权重的多个子队列;
响应于所述用户标识表征所述目标用户的用户优先级高,将所述目标任务单分配给所述第一处理队列来存放所述目标任务单;
响应于所述用户标识表征所述目标用户的用户优先级低,获取所述指定业务的业务标识,其中,所述业务标识用于表征所述指定业务的业务优先级;以及
根据所述业务标识和每个子队列的权重,将所述目标任务单分配给从所述多个子队列中确定出的目标子队列来存放所述目标任务单。
2.根据权利要求1所述的方法,还包括:
响应于存放在所述第一处理队列中的所述目标任务单处理失败,检测所述目标任务单的重试次数是否超过第一重试次数阈值;
在未超过所述第一重试次数阈值的情况下,将所述目标任务单的重试次数加一;以及
将所述目标任务单移至所述第一处理队列的队尾以等待再次处理。
3.根据权利要求2所述的方法,其中,所述候选处理队列集还包含第三处理队列,所述方法还包括:
在已超过所述第一重试次数阈值的情况下,将所述目标任务单移至所述第三处理队列。
4.根据权利要求1所述的方法,还包括:
响应于存放在所述第一处理队列中的所述目标任务单处理成功,将所述目标任务单移出所述第一处理队列。
5.根据权利要求1所述的方法,还包括:
响应于存放在所述目标子队列中的所述目标任务单处理失败,检测所述目标任务单的重试次数是否超过第二重试次数阈值;
在未超过所述第二重试次数阈值的情况下,将所述目标任务单的重试次数加一;以及
将所述目标任务单移至所述目标子队列的队尾以等待再次处理。
6.根据权利要求5所述的方法,其中,所述候选处理队列集还包含第三处理队列,所述方法还包括:
在已超过所述第二重试次数阈值的情况下,将所述目标任务单移至所述第三处理队列。
7.根据权利要求1所述的方法,还包括:
响应于存放在所述目标子队列中的所述目标任务单处理成功,将所述目标任务单移出所述目标子队列。
8.根据权利要求7所述的方法,还包括:
更新所述多个子队列的权重来获得更新后的权重。
9.根据权利要求8所述的方法,其中,所述更新所述多个子队列的权重来获得更新后的权重包括:
获取每个子队列的权重;
基于所述每个子队列的权重,确定除所述目标子队列之外的非目标子队列的权重之和;
根据所述目标子队列的权重与所述权重之和的差更新所述目标子队列的权重来获得更新后的权重;以及
根据每个非目标子队列的权重与自身权重之和更新所述每个非目标子队列的权重来获得更新后的权重。
10.根据权利要求3或6所述的方法,还包括:
响应于将所述目标任务单移至所述第三处理队列,发送通知消息以提示对所述目标任务单执行人工处理。
11.一种任务单的分配装置,包括:
第一获取模块,用于响应于接收到目标用户针对指定业务的目标任务单,获取所述目标用户的用户标识,其中,所述用户标识用于表征所述目标用户的用户优先级;
第二获取模块,用于获取预先创建的候选处理队列集,其中,所述候选处理队列集包含处理优先级高的第一处理队列和处理优先级低的第二处理队列,所述第二处理队列包含预先配置有不同权重的多个子队列;
第一分配模块,用于响应于所述用户标识表征所述目标用户的用户优先级高,将所述目标任务单分配给所述第一处理队列来存放所述目标任务单;
第三获取模块,用于响应于所述用户标识表征所述目标用户的用户优先级低,获取所述指定业务的业务标识,其中,所述业务标识用于表征所述指定业务的业务优先级;以及
第二分配模块,用于根据所述业务标识和每个子队列的权重,将所述目标任务单分配给从所述多个子队列中确定出的目标子队列来存放所述目标任务单。
12.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时使处理器执行根据权利要求1至10中任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时执行根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110729910.3A CN113449994A (zh) | 2021-06-29 | 2021-06-29 | 任务单的分配方法、装置、电子设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110729910.3A CN113449994A (zh) | 2021-06-29 | 2021-06-29 | 任务单的分配方法、装置、电子设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113449994A true CN113449994A (zh) | 2021-09-28 |
Family
ID=77814302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110729910.3A Pending CN113449994A (zh) | 2021-06-29 | 2021-06-29 | 任务单的分配方法、装置、电子设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113449994A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406936A (zh) * | 2023-12-14 | 2024-01-16 | 成都泛联智存科技有限公司 | Io请求调度方法、装置、电子设备和存储介质 |
-
2021
- 2021-06-29 CN CN202110729910.3A patent/CN113449994A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406936A (zh) * | 2023-12-14 | 2024-01-16 | 成都泛联智存科技有限公司 | Io请求调度方法、装置、电子设备和存储介质 |
CN117406936B (zh) * | 2023-12-14 | 2024-04-05 | 成都泛联智存科技有限公司 | Io请求调度方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572285B2 (en) | Method and apparatus for elastically scaling virtual machine cluster | |
US20090113448A1 (en) | Satisfying a request for an action in a virtual world | |
US20170109203A1 (en) | Task scheduling | |
US11507419B2 (en) | Method,electronic device and computer program product for scheduling computer resources in a task processing environment | |
US20100153957A1 (en) | System and method for managing thread use in a thread pool | |
US7681196B2 (en) | Providing optimal number of threads to applications performing multi-tasking using threads | |
KR20110063313A (ko) | 메시지 큐 내에서 논리적으로 연관된 메시지들의 자동화된 병합 방법 | |
US9038093B1 (en) | Retrieving service request messages from a message queue maintained by a messaging middleware tool based on the origination time of the service request message | |
CN110795479A (zh) | 基于数据的分布式etl调度的方法和装置 | |
US9864706B2 (en) | Management of allocation for alias devices | |
CN110955640B (zh) | 跨***数据文件的处理方法、装置、服务器和存储介质 | |
CN109634764A (zh) | 工作流控制方法、装置、设备、存储介质和*** | |
CN113760488A (zh) | 调度任务的方法、装置、设备和计算机可读介质 | |
US7822918B2 (en) | Preallocated disk queuing | |
CN113449994A (zh) | 任务单的分配方法、装置、电子设备、介质和程序产品 | |
CN110413210B (zh) | 用于处理数据的方法、设备和计算机程序产品 | |
CN111144796A (zh) | 用于生成理货信息的方法和装置 | |
CN110515749B (zh) | 信息发送的队列调度的方法、装置、服务器和存储介质 | |
CN112884387B (zh) | 用于控制车辆的方法和装置 | |
CN110825342B (zh) | 存储调度器件和用于处理信息的***、方法及装置 | |
CN111580882B (zh) | 应用程序启动方法、装置、计算机***和介质 | |
CN110187957B (zh) | 一种下载任务的排队方法、装置及电子设备 | |
CN114169733A (zh) | 一种资源分配方法和装置 | |
CN112785208A (zh) | 旅游订单任务分配方法、***、设备及存储介质 | |
CN113781154A (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 |