一种业务数据任务处理方法、装置及系统与流程

文档序号:21408498发布日期:2020-07-07 14:43阅读:216来源:国知局
一种业务数据任务处理方法、装置及系统与流程

本发明涉及计算机网络技术领域,特别涉及一种业务数据任务处理方法、装置及系统。



背景技术:

为实现抢占式的任务获取机制,需采用优先级任务队列来实现此场景,任务排队机制是关键。早期的的任务排队机制,一般是从关系型数据库里查询最优先的任务,然后取第一条,并修改其状态,避免其他人获取到这笔任务。这种机制的缺点是:

1)每次都要调用数据库进行大排队,效率极低;

2)并发场景下,容易发生集中作业人员查询到同一个优先任务的情况,只有第一个人能够获取到任务,其他人获取不到,只能再次查询最优先的任务,然后再修改状态,效率极低。

后期改良的队列是定时刷新关系型数据库的优先任务到缓存中,当客户端获取任务时,对队列缓存进行加锁,然后将最优先的任务返回给客户端。此种设计减少了访问关系型数据库次数和数据库排序压力,同时避免大家同时抢占一个任务的情况,但是依然存在如下缺点:

1)需定时进行数据库大排队,数据库压力大;

2)排队期间客户端无法平滑的获取任务,会有瞬时卡顿现象。



技术实现要素:

基于现有技术存在的缺陷,发明人通过探索发现,集中作业类系统需要一种高效的拉取任务机制,但区别于传统推任务方式,拉取方式对于数据的访问更加集中,更难满足效率的要求,因为,如果每次拉取任务都通过关系型数据库查询,并进行排序,数据库的性能将成为瓶颈,会导致效率无法满足。由此,通过提供一种改进后的业务数据任务处理方法、装置及系统,将关系数据库任务先缓存到内存,通过排序池和消费池的双缓冲队列任务排队机制设置,由于将数据库的排队转换为内存里的排队,再加上排序池与消费池的分离,使得不会因为排序运算影响任务获取的平滑高效,极大地提高了系统效率。

一方面,提供了一种业务数据任务处理方法,所述方法包括:

通过队列管理服务将任务推送至排序池,并在所述排序池内进行排序;

定时将所述排序池内的任务刷新至消费池;

通过所述队列管理服务从所述消费池获取任务。

进一步地,通过队列管理服务将任务推送至排序池,并在所述排序池内进行排序,包括:

通过队列管理服务按照预设任务分类规则对待处理任务进行分类操作,形成多个任务队列,然后将每个任务队列推送至所述每个任务队列的对应排序池,并在所述对应排序池内进行排序。

进一步地,通过队列管理服务按照预设任务分类规则对待处理任务进行分类操作,形成多个任务队列,然后将每个任务队列推送至所述每个任务队列的对应排序池,并在所述对应排序池内进行排序,包括:

通过队列管理服务按照流程环节、作业中心和交易大类对获取的待处理任务进行分类操作,形成多个任务队列,然后将每个任务队列推送至所述每个任务队列的唯一对应排序池,并在所述唯一对应排序池内进行插入排序操作。

进一步地,所述分类操作包括:根据预设流程环节、作业中心和交易大类的分类规则,将任务分类为多个对应相应作业中心和/或作业人员的任务队列,并确定每个任务队列中所有任务的任务优先级;和/或,

所述插入排序操作包括:根据所述任务优先级,确定任务队列中每个任务的排列次序,并根据任务优先级调整策略对所述排列次序进行实时调整,其中,所述任务优先级调整策略至少包括业务紧急程度和业务处理情况。

进一步地,定时将所述排序池内的任务刷新至消费池,包括:

根据预设任务刷新规则,定时将所述排序池的最优先任务转移至所述消费池。

进一步地,通过所述队列管理服务从所述消费池获取任务,包括:

通过所述队列管理服务按照先进先出规则从所述消费池的顶端获取任务。

另一方面,提供了一种业务数据任务处理装置,包括:

任务排序模块,用于:通过队列管理服务将任务推送至排序池,并在所述排序池内进行排序;

任务刷新模块,用于定时将所述排序池内的任务刷新至消费池;

任务获取模块,用于通过所述队列管理服务从所述消费池获取任务。

进一步地,所述任务排序模块用于:

通过队列管理服务按照预设任务分类规则对待处理任务进行分类操作,形成多个任务队列,然后将每个任务队列推送至所述每个任务队列的对应排序池,并在所述对应排序池内进行排序。

进一步地,所述任务排序模块用于:通过队列管理服务按照流程环节、作业中心和交易大类对获取的待处理任务进行分类操作,形成多个任务队列,然后将每个任务队列推送至所述每个任务队列的唯一对应排序池,并在所述唯一对应排序池内进行插入排序操作。

进一步地,所述分类操作包括:根据预设流程环节、作业中心和交易大类的分类规则,将任务分类为多个对应相应作业中心和/或作业人员的任务队列,并确定每个任务队列中所有任务的任务优先级;和/或,

所述插入排序操作包括:根据所述任务优先级,确定任务队列中每个任务的排列次序,并根据任务优先级调整策略对所述排列次序进行实时调整,其中,所述任务优先级调整策略至少包括业务紧急程度和业务处理情况。

进一步地,所述任务刷新模块用于:

根据预设任务刷新规则,定时将所述排序池的最优先任务转移至所述消费池。

进一步地,所述任务获取模块通过所述队列管理服务按照先进先出规则从所述消费池的顶端获取任务。

又一方面,提供了一种业务数据任务处理系统,包括流程引擎、队列管理服务器和缓存,所述队列管理服务器包括任务优先级计算器,所述缓存包括排序池、消费池、任务优先级调整轮询处理器、任务刷新器和任务回收器,其中,所述队列管理服务器从所述流程引擎获取待处理任务,对获取的待处理任务进行分类操作,形成多个任务队列,并通过所述任务优先级计算器确定每个任务队列中所有任务的任务优先级;所述队列管理服务器将每个任务队列的任务推送至唯一对应排序池,并在所述排序池内进行排序,根据所述任务优先级,确定任务队列中每个任务的排列次序,所述任务优先级调整轮询处理器根据任务优先级调整策略对所述排列次序进行实时调整;所述任务刷新器定时将所述排序池内的任务刷新至所述消费池,所述任务回收器对所述消费池中长时间未抓取任务进行超时回收。

本发明实施例提供的技术方案带来的有益效果是:

1、通过将关系数据库任务先缓存到内存,通过排序池和消费池的双缓冲队列任务排队机制设置,任务入列时,首先进入排序池排序,接下来将排序池里满足转移条件的任务转移或搬运到消费池,进入消费池中的任务将不再排序,由于将数据库的排队转换为内存里的排队,再加上排序池与消费池的分离,使得不会因为排序运算影响任务获取的平滑高效,避免任务排队时的卡顿,极大地提高了系统效率;

2、通过按照流程环节、作业中心和交易大类把任务分成不同的任务队列,每一个任务队列都有一对排序池和消费池和一个刷新器;排序池采用sortedset数据结构,负责将任务按照优先级和交易发起时间两个维度进行排序;消费池采用list数据结构,用来实现客户端平滑获取任务。任务入列时,首先进入排序池,将任务插入到适当的排序位置,刷新器会定时将排序池里的最优先任务搬运到消费池中,进入消费池中的任务将不再排序。当客户端获取任务时,直接从消费池的顶端获取任务,由于排序池与消费池的分离,不会因为排序运算影响任务获取的平滑高效;

3、将数据库的排队转换为内存(如redis内存数据库)里的排队,将排队库和获取库分离,避免排队时的卡顿,初步测试结果表明:在任务不堆积的情况下可以达到2万tps,在排序池堆积达到1千万的情况下,也能达到8千以上tps;响应时间小于20毫秒。

附图说明

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

图1是本发明实施例1提供的业务数据任务处理方法流程图;

图2是本发明实施例2提供的业务数据任务处理装置结构示意图;

图3是本发明实施例3提供的业务数据任务处理系统在某一示例性业务场景中的业务操作示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在本发明的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

本发明实施例提供的业务数据任务处理方法、装置及系统,通过将关系数据库任务先缓存到内存,通过排序池和消费池的双缓冲队列任务排队机制设置,任务入列时,首先进入排序池排序,接下来将排序池里满足转移条件的任务转移或搬运到消费池,进入消费池中的任务将不再排序,由于将数据库的排队转换为内存里的排队,再加上排序池与消费池的分离,使得不会因为排序运算影响任务获取的平滑高效,避免任务排队时的卡顿,极大地提高了系统效率。

下面结合具体实施例及附图,对本发明实施例提供的业务数据任务处理方法、装置及系统详细说明。

实施例1

图1是本发明实施例1提供的业务数据任务处理方法流程图,如图1所示,本发明实施例提供的业务数据任务处理方法,包括以下步骤:

101、通过队列管理服务将任务推送至排序池,并在排序池内进行排序。

对于任务队列,在很多业务场景中,系统要求能够应对一天500万笔甚至更高的业务量,每笔业务平均包括多个(比如10个以上)环节,并且要不停的对任务进行排序和存取,对性能要求较高,如果直接使用数据库,数据库性能将成为瓶颈。因此,采用缓冲队列方式获取任务,把对数据库的排序和存取功能转移到缓存中来,提高访问吞吐能力,缓解数据库压力。

而如果对缓存一边排序、一边存取就会有短时间的卡顿,影响操作员效率,对此,采用双缓冲队列来解决这个问题,将任务获取和任务排序动作分流到两种细分任务池上,即分为排序池和消费池,分别是消费池(队列头任务池)和排序池(队列体任务池),既保证业务要求的优先级排序规则又兼顾系统运行高效性。消费池(队列头任务池)用来满足作业人员快速获取任务需要,它是一个最优先任务缓冲池,只保留能供作业人员获取的优先级最高的任务。排序池(队列体任务池)则保存剩余全量的任务,任务优先级排序在队列体大池中进行,并及时抽取最优先的任务刷新到队列头中。

具体地,流程引擎通过队列管理服务把任务推送到排序池,同时系统对排序池内的任务进行排序。优选地,通过队列管理服务按照预设任务分类规则对待处理任务进行分类操作,形成多个任务队列,然后将每个任务队列推送至每个任务队列的对应排序池,并在对应排序池内进行排序。进一步优选地,通过队列管理服务按照流程环节、作业中心和交易大类对获取的待处理任务进行分类操作,形成多个任务队列,然后将每个任务队列推送至每个任务队列的唯一对应排序池,并在唯一对应排序池内进行插入排序操作。进一步优选地,分类操作包括:根据预设流程环节、作业中心和交易大类的分类规则,将任务分类为多个对应相应作业中心和/或作业人员的任务队列,并确定每个任务队列中所有任务的任务优先级;和/或,插入排序操作包括:根据任务优先级,确定任务队列中每个任务的排列次序,并根据任务优先级调整策略对排列次序进行实时调整,其中,任务优先级调整策略至少包括业务紧急程度(如交易紧急程度)和业务处理情况(如业务长时间未处理)。

另外,优选地,排序池采用sortedset数据结构或list数据结构,消费池采用list数据结构;和/或,通过任务优先级调整轮询处理器根据任务优先级调整策略进行任务调整操作。

示例性地,如在某项目中,流程环节包括录入环节、授权环节、电话核实环节、验印环节等环节,作业中心包括南方作业中心和北方作业中心,交易大类包括账户类、结算类交易;按照流程环节、作业中心和交易大类可以把任务划分为不同的任务队列,包括录入环节+南方作业中心+账户类队列、录入环节+北方作业中心+账户类队列、授权环节+南方作业中心+结算类、验印环节+北方作业中心+结算类等任务队列。具体地,如录入任务队列的流程,流程引擎通过队列管理服务把录入任务推送到排序池,录入任务会根据优先级分值,插入到分值相应位置,分值相同时,按时间排序。队列根据环节类型和作业中心划分,保证不同的作业中心和不同的作业人员访问不同的队列,提高了效率,防止队列过长,资源浪费。大部分环节都是专门的队列,但是对于一录和二录这种环节,因为人员技能要求一样,业务处理逻辑也一样,可以合并为一个队列。

根据不同业务设置不同的业务优先级,可以保证立等业务优先处理,满足客户特急业务、立等业务需要,使客户特急业务第一时间办理,立等业务快捷获取结果;区分客户实时业务和普通业务办理时间(收费不同、资金到账时间有别),保证实时业务在承诺时间内到账;为系统进行任务管理和调度提供依据,系统根据业务优先级进行任务排队、调度,解决任务队列优先级排序管理问题。

值得注意的是,上述步骤101的过程,除了上述步骤所述的方式之外,在不脱离本发明发明构思的情况下,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。

102、定时将排序池内的任务刷新至消费池;

具体地,根据预设任务刷新规则,定时将排序池的最优先任务转移至消费池。优选地,通过任务刷新器定时把任务从排序池刷新到消费池,并设定消费池的尺寸阈值,如5000,当消费池数量小于刷新阈值(如1%)时才真正刷新,否则不刷新。

值得注意的是,上述步骤102的过程,除了上述步骤所述的方式之外,在不脱离本发明发明构思的情况下,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。

103、通过队列管理服务从消费池获取任务。

具体地,通过队列管理服务按照先进先出规则从消费池的顶端获取任务。优选地,操作员通过队列管理服务按照先进先出原则从消费池拉取任务。

示例性地,对应区域中心的录入人员,拉取池中先进先出的录入任务,进行录入作业。在信息采集环节,整单/切片采用二次数据采集方式时,两个任务项不得分配给同一个录入员;当两次录入数据校验不一致需要进行再次录入时,任务项不得分配给该业务要素的一、二次录入人员中任何一人;采用ocr识别与人工录入相结合方式时,因ocr识别数据与人工录入数据校验不一致,需要进行再次录入时,任务项不得分配给该业务要素的一次录入人员。在实现上,队列的任务互斥是由规则表达式实现任务过滤。

值得注意的是,上述步骤103的过程,除了上述步骤所述的方式之外,在不脱离本发明发明构思的情况下,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。

实施例2

图2是本发明实施例2提供的业务数据任务处理装置结构示意图,如图2所示,本发明实施例提供的业务数据任务处理装置包括任务排序模块21、任务刷新模块22和任务获取模块23。

其中,任务排序模块21,用于:通过队列管理服务将任务推送至排序池,并在排序池内进行排序。优选地,任务排序模块21用于:通过队列管理服务按照预设任务分类规则对待处理任务进行分类操作,形成多个任务队列,然后将每个任务队列推送至每个任务队列的对应排序池,并在对应排序池内进行排序。进一步优选地,任务排序模块21用于:通过队列管理服务按照流程环节、作业中心和交易大类对获取的待处理任务进行分类操作,形成多个任务队列,然后将每个任务队列推送至每个任务队列的唯一对应排序池,并在唯一对应排序池内进行插入排序操作。进一步优选地,分类操作包括:根据预设流程环节、作业中心和交易大类的分类规则,将任务分类为多个对应相应作业中心和/或作业人员的任务队列,并确定每个任务队列中所有任务的任务优先级;和/或,插入排序操作包括:根据任务优先级,确定任务队列中每个任务的排列次序,并根据任务优先级调整策略对排列次序进行实时调整,其中,任务优先级调整策略至少包括业务紧急程度(如交易紧急程度)和业务处理情况(如业务长时间未处理)。

任务刷新模块22,用于定时将排序池内的任务刷新至消费池。优选地,任务刷新模块22根据预设任务刷新规则,定时将排序池的最优先任务转移至消费池。进一步优选地,任务刷新模块22通过任务刷新器定时把任务从排序池刷新到消费池,并设定消费池的尺寸阈值,当消费池数量小于刷新阈值时才真正刷新,否则不刷新。

任务获取模块23,用于通过队列管理服务从消费池获取任务。优选地,任务获取模块23通过队列管理服务按照先进先出规则从消费池的顶端获取任务。进一步优选地,操作员通过队列管理服务按照先进先出原则从消费池拉取任务。

实施例3

图3是本发明实施例3提供的业务数据任务处理系统在某一示例性业务场景中的业务操作示意图,如图3所示,本发明实施例提供的业务数据任务处理系统包括流程引擎、队列管理服务器和缓存,队列管理服务器包括任务优先级计算器(图中未示出),缓存包括排序池、消费池、任务优先级调整轮询处理器、任务刷新器和任务回收器,其中,队列管理服务器从流程引擎获取待处理任务,对获取的待处理任务进行分类操作,形成多个任务队列,并通过任务优先级计算器确定每个任务队列中所有任务的任务优先级;队列管理服务器将每个任务队列的任务推送至唯一对应排序池,并在排序池内进行排序,根据任务优先级,确定任务队列中每个任务的排列次序,任务优先级调整轮询处理器根据任务优先级调整策略对排列次序进行实时调整;任务刷新器定时将所述排序池内的任务刷新至消费池,任务回收器对消费池中长时间未抓取任务进行超时回收。

本发明实施例提供的业务数据任务处理方法、装置及系统,与现有技术相比,具有以下有益效果:

1、通过将关系数据库任务先缓存到内存,通过排序池和消费池的双缓冲队列任务排队机制设置,任务入列时,首先进入排序池排序,接下来将排序池里满足转移条件的任务转移或搬运到消费池,进入消费池中的任务将不再排序,由于将数据库的排队转换为内存里的排队,再加上排序池与消费池的分离,使得不会因为排序运算影响任务获取的平滑高效,避免任务排队时的卡顿,极大地提高了系统效率;

2、通过按照流程环节、作业中心和交易大类把任务分成不同的任务队列,每一个任务队列都有一对排序池和消费池和一个刷新器;排序池采用sortedset数据结构,负责将任务按照优先级和交易发起时间两个维度进行排序;消费池采用list数据结构,用来实现客户端平滑获取任务。任务入列时,首先进入排序池,将任务插入到适当的排序位置,刷新器会定时将排序池里的最优先任务搬运到消费池中,进入消费池中的任务将不再排序。当客户端获取任务时,直接从消费池的顶端获取任务,由于排序池与消费池的分离,不会因为排序运算影响任务获取的平滑高效;

3、将数据库的排队转换为内存(如redis内存数据库)里的排队,将排队库和获取库分离,避免排队时的卡顿,初步测试结果表明:在任务不堆积的情况下可以达到2万tps,在排序池堆积达到1千万的情况下,也能达到8千以上tps;响应时间小于20毫秒。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1