一种数据处理方法及装置制造方法及图纸

技术编号:25276514 阅读:22 留言:0更新日期:2020-08-14 23:07
本发明专利技术公开了一种数据处理方法及装置,其中方法为:通过第一进程,竞争第一优先级顺序中最高优先级队列组的目标优先级队列;所述多个优先级队列组用于各进程共同竞争;所述各进程针对所述多个优先级队列组均有相应的优先级顺序;所述第一进程为所述各进程中的任一进程;若所述第一进程成功竞争到所述目标优先级队列,则在第一预设时长内,通过所述第一进程,处理所述目标优先级队列中的数据单元。上述方法应用于金融科技(Fintech)时,目标优先级队列可能被多个进程同时竞争,充分利用了多个进程处理能力,提升了数据处理的整体效率。

【技术实现步骤摘要】
一种数据处理方法及装置
本专利技术涉及金融科技(Fintech)领域中的计算机软件领域,尤其涉及一种数据处理方法及装置。
技术介绍
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。目前很多消息中间件都支持基于队列的数据处理,如Kafka,RocketMQ。然而,目前很多队列主要着重于数据单元如何归入队列,如何处理队列中数据单元却没有过多考虑。虽然也有支持多队列的消息中间件,但目前为了保证数据单元的顺序遵从队列的顺序,进程和队列均是一对一的关系。这样难以充分利用进程处理队列中的数据单元,举例来说,一个队列相应的处理进程长时间阻塞,导致队列中的数据单元等待过久,从而导致数据处理的整体效率较低,这是一个亟待解决的问题。
技术实现思路
本专利技术提供一种数据处理方法及装置,解决了现有技术中数据处理的整体效率较低的问题。第一方面,本专利技术提供一种数据处理方法,包括:通过第一进程,竞争第一优先级顺序中最高优先级队列组的目标优先级队列;所述第一优先级顺序为所述第一进程针对多个优先级队列组的组间优先级及组内的优先级队列顺序,其中,每个优先级队列组对应一个优先级;所述多个优先级队列组用于各进程共同竞争;所述各进程针对所述多个优先级队列组均有相应的优先级顺序;所述第一进程为所述各进程中的任一进程;若所述第一进程成功竞争到所述目标优先级队列,则在第一预设时长内,通过所述第一进程,处理所述目标优先级队列中的数据单元。上述方法中,所述多个优先级队列组用于各进程共同竞争,所述各进程针对所述多个优先级队列组均有相应的优先级顺序,因此可以通过多个优先级队列组保证数据单元的处理顺序,对于所述各进程中的任一进程,如第一进程,都可以基于第一进程自身针对多个优先级队列组的组间优先级及组内的优先级队列第一优先级顺序,竞争多个优先级队列组中最高优先级队列组的目标优先级队列,从而可以实现多个优先级顺序下的错峰竞争,而目标优先级队列也可能被多个进程同时竞争,充分利用了多个进程处理能力,并在第一预设时长内,通过所述第一进程,处理所述目标优先级队列中的数据单元,从而在保证数据单元的处理顺序的基础上,提升了数据处理的整体效率。可选的,所述通过第一进程,竞争第一优先级顺序中最高优先级队列组的目标优先级队列之前;还包括:通过所述第一进程,获取队列指针;所述队列指针为空或者为首次失败指针;所述首次失败指针为上一轮消费回合中,连续多次竞争所述多个优先级队列组的优先级队列失败的过程中首次竞争失败的优先级队列的指针;其中,消费回合指所述第一进程完整竞争所述多个优先级队列组中每个优先级队列组的每个优先级队列的一个回合;所述通过第一进程,竞争第一优先级顺序中最高优先级队列组的目标优先级队列之后;还包括:若通过所述第一进程竞争所述目标优先级队列失败,且消费回合的回合数大于1,且所述队列指针指向所述目标优先级队列,则在所述第一预设时长内,保持所述第一进程空闲;在所述第一预设时长结束后,通过所述第一进程,竞争所述目标优先级队列。上述方法中,首先通过所述第一进程,获取队列指针,由于队列指针为空或者为首次失败指针,也就是说队列指针可能指向在上轮消费回合首次竞争失败的优先级队列的指针,若通过所述第一进程竞争所述目标优先级队列失败,且消费回合的回合数大于1,说明所述第一进程到再次竞争所述目标优先级队列时已经多次没竞争到优先级队列,也就是第一进程在占用资源竞争,却没处理数据单元,因此,在所述第一预设时长内,保持所述第一进程空闲,节约第一进程的竞争资源。可选的,在所述第一预设时长结束后,降低所述目标优先级队列的优先级,从而更新所述第一优先级顺序;若所述最高优先级队列组中的优先级队列不为空,则通过所述第一进程,竞争更新后所述第一优先级顺序中所述最高优先级队列组的首位优先级队列;或者,若所述最高优先级队列组中的优先级队列为空,则通过所述第一进程,竞争更新后的所述第一优先级顺序中次高优先级队列组的首位优先级队列。上述方法中,在所述第一预设时长结束后,降低所述目标优先级队列的优先级,从而更新所述第一优先级顺序,让没处理过的优先级队列更容易被处理到,并且若所述最高优先级队列组中的优先级队列不为空或不为空时,便通过所述第一进程,继续竞争更新后的所述最高优先级队列组的首位优先级队列,或者,所述最高优先级队列组之后的次高优先级队列组的首位优先级队列,从而动态调整第一优先级顺序,持续处理优先级队列。可选的,所述第一优先级顺序是基于链表结构记录的;将所述目标优先级队列的记录从所述第一链表中删除;将所述目标优先级队列的记录添加至所述第二链表的尾位,从而降低所述目标优先级队列的优先级。上述方式下,由于各优先级队列变化的可能性较大,而链表结构适用于非连续、非顺序的存储单元,方便存储单元的插入删除,因此通过链表结构记录第一优先级顺序,以及改变第一优先级顺序,更加高效。可选的,所述第一进程成功竞争到所述目标优先级队列;包括:所述第一进程成功获取所述目标优先级队列的队列锁;所述在第一预设时长内,通过所述第一进程,处理所述目标优先级队列中的数据单元之后;还包括:若在第二预设时长结束后,所述第一进程未释放所述队列锁,则强制释放所述队列锁,以供所述各进程竞争;所述第二预设时长大于或等于所述第一预设时长;通过第二进程成功竞争到所述目标优先级队列。上述方式下,所述第一进程通过成功获取所述目标优先级队列的队列锁来竞争到所述目标优先级队列,若在比第一预设时长更长的第二预设时长结束后,所述第一进程还未释放所述队列锁,可以将所述队列锁设置为空闲状态,以供所述各进程竞争,并通过第二进程成功竞争到所述目标优先级队列,从而防止所述第一进程处理某个数据单元时间过长导致之后的部分数据单元长期得不到处理。可选的,所述第一优先级顺序按照以下方式设置:获取所述多个优先级队列组的初始优先级;根据所述多个优先级队列组任一优先级队列组的初始优先级与最大初始优先级的差值,以及所述优先级队列组的初始优先级与最小初始优先级的差值,将所述多个优先级队列组中多个初始优先级映射为所述多个优先级队列组的优先级,从而设置所述第一优先级顺序;所述最大初始优先级为所述多个优先级队列组的初始优先级中最大的优先级;所述最小初始优先级为所述多个优先级队列组的初始优先级中最小的优先级。当所述多个优先级队列组的初始优先级较多时,那么就要记录多个优先级的队列,且队列优先级的改变时切换开销较大,上述方法下,可以将所述多个优先级队列组中多个初始优先级映射为所述多个优先级队列组的优先级,降低队列优先级的总数,且是根据所述多个优先级队列组的初始优先级与最大初始优先级的差值,以及所述优先级队列组的初始优先级与最小初始优先级的差值确定的,考虑了原有初始优先级之间的相对差距,因此调整后的优先级也保留了相对差距,从而在此基础上减少第一优先级顺序的记录开销和变化开销。可选的,所述第一预设时长是根据运行所述第一进程所在主本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n通过第一进程,竞争第一优先级顺序中最高优先级队列组的目标优先级队列;所述第一优先级顺序为所述第一进程针对多个优先级队列组的组间优先级及组内的优先级队列顺序,其中,每个优先级队列组对应一个优先级;所述多个优先级队列组用于各进程共同竞争;所述各进程针对所述多个优先级队列组均有相应的优先级顺序;所述第一进程为所述各进程中的任一进程;/n若所述第一进程成功竞争到所述目标优先级队列,则在第一预设时长内,通过所述第一进程,处理所述目标优先级队列中的数据单元。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
通过第一进程,竞争第一优先级顺序中最高优先级队列组的目标优先级队列;所述第一优先级顺序为所述第一进程针对多个优先级队列组的组间优先级及组内的优先级队列顺序,其中,每个优先级队列组对应一个优先级;所述多个优先级队列组用于各进程共同竞争;所述各进程针对所述多个优先级队列组均有相应的优先级顺序;所述第一进程为所述各进程中的任一进程;
若所述第一进程成功竞争到所述目标优先级队列,则在第一预设时长内,通过所述第一进程,处理所述目标优先级队列中的数据单元。


2.如权利要求1所述的方法,其特征在于,所述通过第一进程,竞争第一优先级顺序中最高优先级队列组的目标优先级队列之前;还包括:
通过所述第一进程,获取队列指针;所述队列指针为空或者为首次失败指针;所述首次失败指针为上一轮消费回合中,连续多次竞争所述多个优先级队列组的优先级队列失败的过程中首次竞争失败的优先级队列的指针;其中,消费回合指所述第一进程完整竞争所述多个优先级队列组中每个优先级队列组的每个优先级队列的一个回合;
所述通过第一进程,竞争第一优先级顺序中最高优先级队列组的目标优先级队列之后;还包括:
若通过所述第一进程竞争所述目标优先级队列失败,且消费回合的回合数大于1,且所述队列指针指向所述目标优先级队列,则在所述第一预设时长内,保持所述第一进程空闲。


3.如权利要求1所述的方法,其特征在于,还包括:
在所述第一预设时长结束后,降低所述目标优先级队列的优先级,从而更新所述第一优先级顺序;
若所述最高优先级队列组中的优先级队列不为空,则通过所述第一进程,竞争更新后所述第一优先级顺序中所述最高优先级队列组的首位优先级队列;或者,
若所述最高优先级队列组中的优先级队列为空,则通过所述第一进程,竞争更新后的所述第一优先级顺序中次高优先级队列组的首位优先级队列。


4.如权利要求3所述的方法,其特征在于,所述第一优先级顺序是基于链表结构记录的;所述最高优先级队列组的优先级队列记录在第一链表中;所述次高优先级队列组的优先级队列记录在第二链表中;所述降低所述目标优先级队列的优先级,包括:
将所述目标优先级队列的记录从所述第一链表中删除;
将所述目标优先级队列的记录添加至所述第二链表的尾位,从而降低所述目标...

【专利技术属性】
技术研发人员:华德义邓康华尹强邸帅卢道和
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1