CN106484522A - 队列处理方法及装置 - Google Patents
队列处理方法及装置 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating 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队列中提取下一条数据的步骤。
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)
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)
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 | 博雅网络游戏开发(深圳)有限公司 | 数据分析方法和装置 |
-
2016
- 2016-10-21 CN CN201610919579.0A patent/CN106484522A/zh not_active Withdrawn
Patent Citations (3)
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)
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 |