队列处理方法及装置制造方法及图纸

技术编号:14768260 阅读:91 留言:0更新日期:2017-03-08 12:32
本发明专利技术公开了一种队列处理方法及装置。根据本发明专利技术提供的队列处理方法包括:判断REDIS队列中当前总数据量;如果所述总数据量大于或等于预定阈值,则等待第一预定时长之后,重新判断REDIS队列中的总数据量;如果所述总数据量小于预定阈值,则从数据库队列表中提取预定数量的数据,填充到REDIS队列中。根据本发明专利技术提供的技术方案,可以控制REDIS内存中的临时数据量,不会发生大量数据涌入内存导致溢出的情况,同时有效的限制了与数据库的IO频率。

【技术实现步骤摘要】

本专利技术涉及通信领域,具体而言,涉及一种队列处理方法及装置
技术介绍
随着转售业务的不断扩展,系统处理的数据量剧增,越来越多的服务采用队列的处理方式,让高并发产生的数据进入队列中,有序的处理。然而,数据的积压也会导致程序的处理效率受到影响,传统的队列方式还会造成与数据库交互输入输出(InputOutputInterface,简称IO)压力过大的问题。因此,目前亟需提供一种高效且可控的队列处理机制,来解决IO压力大,效率低下的问题。
技术实现思路
本专利技术的主要目的在于公开了一种呼叫限制方法及装置,以至少解决相关技术中队列方式还会造成与数据库交互输入输出IO压力过大的问题。根据本专利技术的一个方面,提供了一种队列处理方法。根据本专利技术的队列处理方法包括:判断REDIS队列中当前总数据量;如果所述总数据量大于或等于预定阈值,则等待第一预定时长之后,重新判断REDIS队列中的总数据量;如果所述总数据量小于预定阈值,则从数据库队列表中提取预定数量的数据,填充到REDIS队列中。优选地,从数据库队列表中提取数据,填充到REDIS队列中包括:将数据库取出的数据,逐条填充到所述REDIS队列中,其中,将数据标识作为哈希表的键,将数据内容json串作为哈希表的值,一起保存到REDIS哈希表中。优选地,上述方法还包括:在从所述REDIS队列提取数据时,判断所述REDIS队列是否为空;如果所述REDIS队列为空,则等待第二预定时长之后,再次尝试提取所述REDIS队列中的数据;如果所述REDIS队列不为空,则根据数据标识从哈希表中取出待处理的数据内容。优选地,根据数据标识从哈希表中取出待处理的数据内容之后,还包括:按照业务需求处理所述数据内容,返回执行从所述REDIS队列中提取下一条数据的步骤。根据本专利技术的另一方面,提供了一种队列处理装置。根据本专利技术的队列处理装置包括:第一判断模块,用于判断REDIS队列中当前总数据量;第一处理模块,用于在所述总数据量大于或等于预定阈值时,等待第一预定时长之后,重新判断REDIS队列中的总数据量;第二处理模块,用于在所述总数据量小于预定阈值时,从数据库队列表中提取数据,填充到REDIS队列中。与现有技术相比,本专利技术实施例至少具有以下优点:可以控制REDIS内存中的临时数据量,不会发生大量数据涌入内存导致溢出的情况,同时有效的限制了与数据库的IO频率。附图说明图1是根据本专利技术实施例的队列处理方法的流程图;图2是根据本专利技术优选实施例的提取数据填充到REDIS队列中的流程图;图3是根据本专利技术优选实施例的从REDIS队列中取数据处理的流程图;图4是根据本专利技术实施例的队列处理装置的结构框图;图5是根据本专利技术优选实施例的队列处理装置的结构框图。具体实施方式下面结合说明书附图对本专利技术的具体实现方式做一详细描述。图1是根据本专利技术实施例的队列处理方法的流程图。如图1所示,该队列处理方法包括:步骤S101:判断REDIS队列中当前总数据量;步骤S103:如果上述总数据量大于或等于预定阈值,则等待第一预定时长之后,重新判断REDIS队列中的总数据量;步骤S105:如果上述总数据量小于预定阈值,则从数据库队列表中提取预定的数据量,填充到REDIS队列中。采用图1所示的方法,当REDIS队列中当前总数数据量大于或等于预定阈值,则等待第一预定时长之后,之后重新判断REDIS队列中的总数据量;当REDIS队列中当前总数据量小于预定阈值时,从数据库队列表中提取预定数量的数据,填充到REDIS队列中。可以控制REDIS内存中的临时数据量,不会发生大量数据涌入内存导致溢出的情况,同时有效的限制了与数据库的IO频率。其中,上述的预定阈值以及预定数量均为可以根据实际情况动态设置的值,两者共同作用可以控制REDIS内存中的临时数据量,不会发生大量数据涌入内存导致溢出的情况,同时有效的限制了与数据库的IO频率。此外,可以根据所处理的数据量和要求的效率,按需调整处理进程数量。优选地,从数据库队列表中提取数据,填充到REDIS队列中可以进一步包括:将数据库取出的数据,逐条填充到上述REDIS队列中,其中,将数据标识作为哈希表的键,将数据内容json串作为哈希表的值,一起保存到REDIS哈希表中。优选地,上述队列处理方法还可以包括:在从上述REDIS队列提取数据时,判断上述REDIS队列是否为空;如果上述REDIS队列为空,则等待第二预定时长之后,再次尝试提取上述REDIS队列中的数据;如果上述REDIS队列不为空,则根据数据标识从哈希表中取出待处理的数据内容。在根据数据标识从哈希表中取出待处理的数据内容之后,还可以包括以下处理:按照业务需求处理上述数据内容,返回执行从上述REDIS队列中提取下一条数据的步骤。以下结合图2和图3进一步描述上述优选实施方式。图2是根据本专利技术优选实施例的提取数据填充到REDIS队列中的流程图。如图2所示,主要包括以下步骤:步骤S201:判断REDIS队列中的当前总数据量;如果小于预定阈值,执行步骤S203,否则,执行步骤S207。步骤S203:从数据库对列表中提取预定数量的数据。步骤S205:将数据库取出的数据,逐条录入REDIS队列中。其中,数据ID保存到REDIS队列中;数据ID作为哈希表的键,数据内容json串作为哈希表的值,保存到REDIS哈希表中。此批数据处理完成后,返回执行步骤S201。步骤S207:等待1秒钟,然后返回执行步骤S201。图3是根据本专利技术优选实施例的从REDIS队列中取数据处理的流程图。如图3所示,主要包括以下步骤:步骤S301:提取REDIS队列中的数据(逐条处理)步骤S303:判断该REDIS队列中的数据是否为空,如果是,执行步骤S305,否则,返回执行步骤S309。步骤S305:如队列中有数据ID取出,根据队列ID,从哈希表中取出待处理的数据内容。步骤S307:按照业务需求处理取出的数据,完成后返回执行步骤S301。步骤S309:如队列中无数据,进程等待1秒,返回执行步骤S301,即再次尝试读取REDIS队列数据。图4是根据本专利技术实施例的队列处理装置的结构框图。如图4所示,该队列处理装置包括:第一判断模块40,用于判断REDIS队列中当前总数据量;第一处理模块42,用于在上述总数据量大于或等于预定阈值时,等待第一预定时长之后,重新判断REDIS队列中的总数据量;第二处理模块44,用于在上述总数据量小于预定阈值时,从数据库队列表中提取数据,填充到REDIS队列中。当REDIS队列中当前总数数据量大于或等于预定阈值,则第一处理模块42等待第一预定时长之后,之后重新判断REDIS队列中的总数据量;当REDIS队列中当前总数据量小于预定阈值时,第二处理模块44从数据库队列表中提取预定数量的数据,填充到REDIS队列中。采用该装置可以控制REDIS内存中的临时数据量,不会发生大量数据涌入内存导致溢出的情况,同时有效的限制了与数据库的IO频率。优选地,如图5所示,上述第二处理模块44可以进一步包括:填充单元440,用于将数据库取出的数据,逐条填充到上述REDIS队列中,其中,将数据标识作为哈希表的键,将数据内容json串作为哈希表的值,一起保存到REDIS哈希表中。优选地,如图5所示本文档来自技高网...
队列处理方法及装置

【技术保护点】
一种队列处理方法,其特征在于,包括:判断REDIS队列中当前总数据量;如果所述总数据量大于或等于预定阈值,则等待第一预定时长之后,重新判断REDIS队列中的总数据量;如果所述总数据量小于预定阈值,则从数据库队列表中提取预定数量的数据,填充到REDIS队列中。

【技术特征摘要】
1.一种队列处理方法,其特征在于,包括:判断REDIS队列中当前总数据量;如果所述总数据量大于或等于预定阈值,则等待第一预定时长之后,重新判断REDIS队列中的总数据量;如果所述总数据量小于预定阈值,则从数据库队列表中提取预定数量的数据,填充到REDIS队列中。2.根据权利要求1所述的方法,其特征在于,从数据库队列表中提取数据,填充到REDIS队列中包括:将数据库取出的数据,逐条填充到所述REDIS队列中,其中,将数据标识作为哈希表的键,将数据内容json串作为哈希表的值,一起保存到REDIS哈希表中。3.根据权利要求1或2所述的方法,其特征在于,还包括:在从所述REDIS队列提取数据时,判断所述REDIS队列是否为空;如果所述REDIS队列为空,则等待第二预定时长之后,再次尝试提取所述REDIS队列中的数据;如果所述REDIS队列不为空,则根据数据标识从哈希表中取出待处理的数据内容。4.根据权利要求3所述的方法,其特征在于,根据数据标识从哈希表中取出待处理的数据内容之后,还包括:按照业务需求处理所述数据内容,返回执行从所述REDIS队列中提取下一条数据的步骤。5.一种队列处理装置...

【专利技术属性】
技术研发人员:袁聪叶培宗
申请(专利权)人:贵阳朗玛信息技术股份有限公司
类型:发明
国别省市:贵州;52

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

1