CN106484522A - 队列处理方法及装置 - Google Patents

队列处理方法及装置 Download PDF

Info

Publication number
CN106484522A
CN106484522A CN201610919579.0A CN201610919579A CN106484522A CN 106484522 A CN106484522 A CN 106484522A CN 201610919579 A CN201610919579 A CN 201610919579A CN 106484522 A CN106484522 A CN 106484522A
Authority
CN
China
Prior art keywords
data
queue
redis
redis queue
hash table
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.)
Withdrawn
Application number
CN201610919579.0A
Other languages
English (en)
Inventor
袁聪
叶培宗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guiyang Longmaster Information and Technology Co ltd
Original Assignee
Guiyang Longmaster Information and Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guiyang Longmaster Information and Technology Co ltd filed Critical Guiyang Longmaster Information and Technology Co ltd
Priority to CN201610919579.0A priority Critical patent/CN106484522A/zh
Publication of CN106484522A publication Critical patent/CN106484522A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

队列处理方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种队列处理方法及装置。
背景技术
随着转售业务的不断扩展,系统处理的数据量剧增,越来越多的服务采用队列的处理方式,让高并发产生的数据进入队列中,有序的处理。
然而,数据的积压也会导致程序的处理效率受到影响,传统的队列方式还会造成与数据库交互输入输出(Input OutputInterface,简称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所示,上述装置还可以包括:第二判断模块46,用于在从上述REDIS队列提取数据时,判断上述REDIS队列是否为空;第一提取模块48,用于在上述REDIS队列为空时,等待第二预定时长之后,再次尝试提取上述REDIS队列中的数据;第二提取模块50,用于在上述REDIS队列不为空时,根据数据标识从哈希表中取出待处理的数据内容。
优选地,如图5所示,上述装置还可以包括:第三处理模块52,用于按照业务需求处理上述数据内容,返回执行从上述REDIS队列中提取下一条数据的步骤。
需要说明的是,上述队列处理装置中各个模块,各个单元相互结合实施的队列处理流程可以参见图1至图3的描述,此处不再赘述。
综上所述,借助本发明提供的上述实施例,一方面可以控制REDIS内存中的临时数据量,不会发生大量数据涌入内存导致溢出的情况,同时有效的限制了与数据库的IO频率,保证数据库运行稳定;另一方面,可以按需调配处理进程的数量,使得整个队列程序稳定高效,并且自由可控。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (8)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610919579.0A CN106484522A (zh) 2016-10-21 2016-10-21 队列处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610919579.0A CN106484522A (zh) 2016-10-21 2016-10-21 队列处理方法及装置

Publications (1)

Publication Number Publication Date
CN106484522A true CN106484522A (zh) 2017-03-08

Family

ID=58270494

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610919579.0A Withdrawn CN106484522A (zh) 2016-10-21 2016-10-21 队列处理方法及装置

Country Status (1)

Country Link
CN (1) CN106484522A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608858A (zh) * 2017-09-28 2018-01-19 北京京东尚科信息技术有限公司 信息处理系统、方法和装置
CN109409412A (zh) * 2018-09-28 2019-03-01 新华三大数据技术有限公司 图片处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103390049A (zh) * 2013-07-23 2013-11-13 南京联创科技集团股份有限公司 一种基于内存数据库缓存的高速消息队列溢出的处理方法
CN103927305A (zh) * 2013-01-11 2014-07-16 中国移动通信集团山东有限公司 一种对内存溢出进行控制的方法和设备
CN104252458A (zh) * 2013-06-25 2014-12-31 博雅网络游戏开发(深圳)有限公司 数据分析方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927305A (zh) * 2013-01-11 2014-07-16 中国移动通信集团山东有限公司 一种对内存溢出进行控制的方法和设备
CN104252458A (zh) * 2013-06-25 2014-12-31 博雅网络游戏开发(深圳)有限公司 数据分析方法和装置
CN103390049A (zh) * 2013-07-23 2013-11-13 南京联创科技集团股份有限公司 一种基于内存数据库缓存的高速消息队列溢出的处理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608858A (zh) * 2017-09-28 2018-01-19 北京京东尚科信息技术有限公司 信息处理系统、方法和装置
CN109409412A (zh) * 2018-09-28 2019-03-01 新华三大数据技术有限公司 图片处理方法及装置

Similar Documents

Publication Publication Date Title
CN107766160B (zh) 队列消息处理方法及终端设备
CN104077420B (zh) 一种数据导入HBase数据库的方法和装置
WO2014161431A2 (zh) 系统优化的方法及装置
CN103841052A (zh) 一种带宽资源分配系统与方法
CN105306277A (zh) 消息队列的消息调度方法及消息调度装置
CN107832143A (zh) 一种物理机资源的处理方法和装置
CN107547629A (zh) 客户端静态资源下载的方法、装置、电子设备和可读介质
CN102123084B (zh) 云计算操作系统中资源调度方法及系统
CN106484522A (zh) 队列处理方法及装置
CN104182279A (zh) 一种任务调度方法、装置及系统
CN104283643A (zh) 报文限速方法和装置
CN106201665A (zh) 一种动态队列布置方法及设备
CN106776072A (zh) 消息推送方法及系统
CN108074085A (zh) 一种账单代扣方法和装置
CN107239325A (zh) 单证数据处理方法和装置
CN104778125B (zh) 一种内存管理方法及系统
CN103916316A (zh) 网络数据包线速捕获方法
CN106503543A (zh) 一种管理应用程序的方法和装置
CN109840597B (zh) 一种模型预测方法、装置、电子设备及存储介质
CN102647293B (zh) 电信网管系统北向ftp性能文件自动补采方法及装置
CN112260962A (zh) 一种带宽控制方法及装置
CN104375883B (zh) 一种cfs调度器
CN115758742A (zh) 一种面向配电网边缘计算装置的计算任务优化调度方法
CN102158416B (zh) 一种基于内存分配的报文处理方法和设备
CN101320443A (zh) 一种电子工单的处理方法及处理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20170308

WW01 Invention patent application withdrawn after publication