CN114168367A - 一种通过批量任务解决队列积压的方法及系统 - Google Patents
一种通过批量任务解决队列积压的方法及系统 Download PDFInfo
- Publication number
- CN114168367A CN114168367A CN202111501755.6A CN202111501755A CN114168367A CN 114168367 A CN114168367 A CN 114168367A CN 202111501755 A CN202111501755 A CN 202111501755A CN 114168367 A CN114168367 A CN 114168367A
- Authority
- CN
- China
- Prior art keywords
- queue
- backlog
- data
- batch
- files
- 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.)
- Pending
Links
Images
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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
- G06F16/258—Data format conversion from or to a database
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机控制技术领域,尤其涉及一种通过批量任务解决队列积压的方法及系统,该方法包括进行队列操作,并实时获取队列监控数据;分析队列监控数据,当队列当前积压量大于单位时间内处理的任务量时,判断为队列为积压状态,将队列中的数据转换为批量文件并导入本地文件进行保存;当队列当前积压量小于单位时间内处理的任务量时,判断为队列缓存不足状态,调取本地文件中的批量文件进行处理。该方法可以快速消费队列中积压的数据,有效地释放运行内存,转为占用磁盘空间,进而使应用响应恢复、释放磁盘空间,在实操中能够有效地利用现有的服务器资源,提升运行效率,防止内存溢出。
Description
技术领域
本发明涉及计算机控制技术领域,尤其涉及一种通过批量任务解决队列积压的方法及系统。
背景技术
队列是一种先进先出数据结构。它是存放消息的容器,消息从队尾入队,从队头出队,入队即发消息的过程,出队即收消息的过程。
队列中入队的速度大于出队的速度,导致队列中的数据逐渐增多,最后形成积压。大交易量系统队列积压几百万条数据,并长时间没有消费,导致队列的储存被填满无法提供服务或导致消息的丢失。现有解决队列积压的方法为通过机器扩容,来增加对队列中数据的消费速度。由于机器扩容的成本很高,因此迫切需要一种简捷、高效、低成本的手段解决列队积压的问题。
发明内容
为解决现有技术的不足,本发明提出一种通过批量任务解决队列积压的方法及系统。
为实现以上目的,本发明所采用的技术方案包括:
一种通过批量任务解决队列积压的方法,其特征在于,包括以下步骤:
步骤S1、进行队列操作,并实时获取队列监控数据;
步骤S2、分析队列监控数据,当队列当前积压量大于单位时间内处理的任务量时,判断为队列为积压状态,将队列中的数据转换为批量文件并导入本地文件进行保存;当队列当前积压量小于单位时间内处理的任务量时,判断为队列缓存不足状态,调取本地文件中的批量文件进行处理。
进一步地,所述队列操作包括队列的插入操作和队列的删除操作,进行队列的插入操作时,待入队的数据元素只能从队尾的一端进入队列,进行队列的删除操作时,待出队的数据元素只能从队首的一端出队列。
进一步地,所述步骤S1中,通过监控磁盘空间内存的方式定时获取队列监控数据。
进一步地,所述步骤S1中,当队列交易响应时间大于设置的阈值或磁盘空间不足时判断为队列积压状态。
进一步地,所述步骤S2中,当队列为积压状态时,队列切换程序为生成批量文件的消费程序,快速消费队列中积压的数据。
进一步地,所述步骤S2中,当队列为积压状态时,通过队列的poll方法循环将队列中的数据快速取出并转换为批量文件导入本地文件进行保存。
本发明还涉及一种通过批量任务解决队列积压的系统,其特征在于,包括:
获取模块,用于进行队列操作,并实时获取队列监控数据;
分析判断模块,用于分析队列监控数据,当队列当前积压量大于单位时间内处理的任务量时,判断为队列为积压状态,将队列中的数据转换为批量文件并导入本地文件进行保存;当队列当前积压量小于单位时间内处理的任务量时,判断为队列缓存不足状态,调取本地文件中的批量文件进行处理。
本发明还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
本发明还涉及一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所诉操作指令,执行上述的方法。
本发明还涉及一种计算机程序产品,包括计算机程序和/或指令,其特征在于,该计算机程序和/或指令被处理器执行时实现上述方法的步骤。
本发明的有益效果为:
采用本发明所述通过批量任务解决队列积压的方法及系统,通过将队列中的积压数据快速消费保存到本地的批量任务文件中,并在交易量相对较少时(如凌晨深夜)来调取并处理批量文件中的数据,以解决队列积压的问题。该方法可以快速消费队列中积压的数据,有效地释放运行内存,转为占用磁盘空间,进而使应用响应恢复、释放磁盘空间,在实操中能够有效地利用现有的服务器资源,提升运行效率,防止内存溢出。
附图说明
图1为本发明通过批量任务解决队列积压的方法流程示意图。
图2为本发明通过批量任务解决队列积压的系统结构示意图。
具体实施方式
在本发明中,队列是指一种先进先出数据结构。它是存放消息的容器,消息从队尾入队,从队头出队,入队即发消息的过程,出队即收消息的过程。
队列积压是指队列中入队的速度大于出队的速度,导致队列中的数据逐渐增多,最后形成积压。
批量处理任务是指通过读取数据文件的形式,通过逻辑代码处理数据文件中的待处理的数据。
为了更清楚的理解本发明的内容,将结合附图和实施例详细说明。
本发明第一方面涉及一种步骤流程如图1所示的通过批量任务解决队列积压的方法,包括以下步骤:
步骤S1、进行队列操作,并实时获取队列监控数据;
步骤S2、分析队列监控数据,当队列当前积压量大于单位时间内处理的任务量时,判断为队列为积压状态,将队列中的数据转换为批量文件并导入本地文件进行保存;当队列当前积压量小于单位时间内处理的任务量时,判断为队列缓存不足状态,调取本地文件中的批量文件进行处理。
可选的,所述队列操作包括队列的插入操作和队列的删除操作,进行队列的插入操作时,待入队的数据元素只能从队尾的一端进入队列,进行队列的删除操作时,待出队的数据元素只能从队首的一端出队列。
示例性的,一个存储整型元素的队列,依次入队为:{1,2,3},进行队列的插入操作时,待入队的数据元素只能从队尾一端进入队列,也即是2只能跟在1后面,3只能跟在2后面;进行队列的删除操作时,待出队的数据元素只能从队首的一端出队列,即出队顺序为1、2、3,与入队时的顺序一致,即遵循“先进先出”原则。
当交易量很大(生产者过多或生产者单位时间内产生数据过多)时,处理数据程序(消费者)有限或处理数据程序运行时间过长时,单位时间内进入队列的数据数量远远大于数据出队数量,导致队列中的数据数越来越多,最后导致磁盘空间不足,新产生的数据无法再入队。
可选的,通过监控磁盘空间内存的方式定时获取队列监控数据。
可选的,当队列交易响应时间大于设置的阈值或磁盘空间不足时判断为队列积压状态。
示例性的,设置磁盘空间已经被占用90%时判断为队列积压状态,或当交易响应时间变慢大于200ms时,判断为队列积压状态。
可选的,当队列为积压状态时,队列切换程序为生成批量文件的消费程序,快速消费队列中积压的数据,使应用响应恢复、释放磁盘空间。
可选的,当队列为积压状态时,通过队列的poll方法循环将队列中的数据快速取出并转换为批量文件导入本地文件进行保存,可实现快速释放内存,从而使队列保有空间用来接收生产者产生的新增数据。
示例性的,通过java.io.BufferedWriter;java.io.File;java.io.FileOutputStream;java.io.IOException;java.io.OutputStreamWriter;java.io.PrintWriter;java.text.NumberFormat;java.text.SimpleDateFormat;java.util.Date等方法将数据快速取出并转换为批量文件导入本地文件进行保存。
当交易量较小(生产者较少或生产者单位时间内产生数据较少)时,通过批量任务读取事先保存到批量文件中的待处理的数据,并调用数据应执行的逻辑,来实现对数据的处理。
示例性的,通过java.io.BufferedWriter;java.io.File;java.io.FileOutputStream;java.io.IOException;java.io.InputStreamReader等方法读取批量文件中的数据。
在实操过程中,当线程池处理的太慢的时候,队列里的内容会积累,积累到一定程度就会内存溢出。即使没有内存溢出,队列的延迟势必会变大,而且如果进程突然遇到退出信号,队列里的消息还没有被处理就被丢弃了,必然会对系统的消息可靠性造成重大影响。
采用本发明所述通过批量任务解决队列积压的方法及系统,通过将队列中的积压数据快速消费保存到本地的批量任务文件中,并在交易量相对较少时(如凌晨深夜)来调取并处理批量文件中的数据,以解决队列积压的问题。该方法可以快速消费队列中积压的数据,有效地释放运行内存,转为占用磁盘空间(磁盘空间远大于运行内存空间),进而使应用响应恢复、释放磁盘空间,在实操中能够有效地利用现有的服务器资源,提升运行效率,防止内存溢出。
本发明另一方面还涉及一种通过批量任务解决队列积压的系统,其结构如图2所示,包括:
获取模块,用于进行队列操作,并实时获取队列监控数据;
分析判断模块,用于分析队列监控数据,当队列当前积压量大于单位时间内处理的任务量时,判断为队列为积压状态,将队列中的数据转换为批量文件并导入本地文件进行保存;当队列当前积压量小于单位时间内处理的任务量时,判断为队列缓存不足状态,调取本地文件中的批量文件进行处理。
通过使用该系统,能够执行上述的运算处理方法并实现对应的技术效果。
本发明的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤。
本发明的实施例还提供一种用于执行上述方法的电子设备,作为该方法的实现装置,所述电子设备至少具备有处理器和存储器,特别是该存储器上存储有执行方法所需的数据和相关的计算机程序,例如等,并通过由处理器调用存储器中的数据、程序执行实现方法的全部步骤,并获得对应的技术效果。
优选的,该电子设备可以包含有总线架构,总线可以包括任意数量的互联的总线和桥,总线将包括由一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他系统通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。
额外的,所述电子设备还可以进一步包括通信模块、输入单元、音频处理器、显示器、电源等部件。其所采用的处理器(或称为控制器、操作控件)可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器接收输入并控制电子设备的各个部件的操作;存储器可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种,可储存上述有关的数据信息,此外还可存储执行有关信息的程序,并且处理器可执行该存储器存储的该程序,以实现信息存储或处理等;输入单元用于向处理器提供输入,例如可以为按键或触摸输入装置;电源用于向电子设备提供电力;显示器用于进行图像和文字等显示对象的显示,例如可为LCD显示器。通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到中央处理器,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (10)
1.一种通过批量任务解决队列积压的方法,其特征在于,包括以下步骤:
步骤S1、进行队列操作,并实时获取队列监控数据;
步骤S2、分析队列监控数据,当队列当前积压量大于单位时间内处理的任务量时,判断为队列为积压状态,将队列中的数据转换为批量文件并导入本地文件进行保存;当队列当前积压量小于单位时间内处理的任务量时,判断为队列缓存不足状态,调取本地文件中的批量文件进行处理。
2.如权利要求1所述的方法,其特征在于,所述队列操作包括队列的插入操作和队列的删除操作,进行队列的插入操作时,待入队的数据元素只能从队尾的一端进入队列,进行队列的删除操作时,待出队的数据元素只能从队首的一端出队列。
3.如权利要求1所述的方法,其特征在于,所述步骤S1中,通过监控磁盘空间内存的方式定时获取队列监控数据。
4.如权利要求1所述的方法,其特征在于,所述步骤S1中,当队列交易响应时间大于设置的阈值或磁盘空间不足时判断为队列积压状态。
5.如权利要求1所述的方法,其特征在于,所述步骤S2中,当队列为积压状态时,队列切换程序为生成批量文件的消费程序,快速消费队列中积压的数据。
6.如权利要求1至5任一项所述的方法,其特征在于,所述步骤S2中,当队列为积压状态时,通过队列的poll方法循环将队列中的数据快速取出并转换为批量文件导入本地文件进行保存。
7.一种通过批量任务解决队列积压的系统,其特征在于,包括:
获取模块,用于进行队列操作,并实时获取队列监控数据;
分析判断模块,用于分析队列监控数据,当队列当前积压量大于单位时间内处理的任务量时,判断为队列为积压状态,将队列中的数据转换为批量文件并导入本地文件进行保存;当队列当前积压量小于单位时间内处理的任务量时,判断为队列缓存不足状态,调取本地文件中的批量文件进行处理。
8.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序和/或指令,其特征在于,该计算机程序和/或指令被处理器执行时实现权利要求1至6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111501755.6A CN114168367A (zh) | 2021-12-09 | 2021-12-09 | 一种通过批量任务解决队列积压的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111501755.6A CN114168367A (zh) | 2021-12-09 | 2021-12-09 | 一种通过批量任务解决队列积压的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168367A true CN114168367A (zh) | 2022-03-11 |
Family
ID=80485072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111501755.6A Pending CN114168367A (zh) | 2021-12-09 | 2021-12-09 | 一种通过批量任务解决队列积压的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168367A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166451A (zh) * | 2022-12-09 | 2023-05-26 | 广州市玄武无线科技股份有限公司 | 一种主题数量的动态调节方法、系统、装置及存储介质 |
-
2021
- 2021-12-09 CN CN202111501755.6A patent/CN114168367A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166451A (zh) * | 2022-12-09 | 2023-05-26 | 广州市玄武无线科技股份有限公司 | 一种主题数量的动态调节方法、系统、装置及存储介质 |
CN116166451B (zh) * | 2022-12-09 | 2023-11-07 | 广州市玄武无线科技股份有限公司 | 一种主题数量的动态调节方法、系统、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110662085B (zh) | 消息发送方法、装置、可读介质及电子设备 | |
CN110661668B (zh) | 一种消息发送管理方法及装置 | |
CN114390451A (zh) | 基于消息队列的5g消息批量发送方法、装置及电子设备 | |
CN115858175B (zh) | 异步i/o请求优先级的调度方法、装置、介质及控制设备 | |
CN114168367A (zh) | 一种通过批量任务解决队列积压的方法及系统 | |
CN111949614B (zh) | 银行系统文件转换方法及装置 | |
WO2022211724A1 (en) | Method and apparatus for transmitting messages, and device and storage medium thereof | |
CN102333280A (zh) | 一种业务密钥更新的方法、系统及业务处理服务器 | |
CN111416763A (zh) | 消息推送方法 | |
CN105763481A (zh) | 一种信息缓存方法及装置 | |
CN113190516A (zh) | 数据同步监控方法及装置 | |
CN110515749B (zh) | 信息发送的队列调度的方法、装置、服务器和存储介质 | |
US9055019B1 (en) | Method and apparatus for message multicasting | |
CN113055483A (zh) | 消息中间件数据处理方法、装置及系统 | |
CN101997777B (zh) | 中断处理方法、装置和网络设备 | |
CN111984198A (zh) | 消息队列实现方法、装置及电子设备 | |
CN113783913A (zh) | 一种消息推送管理方法和装置 | |
CN112035066A (zh) | 日志保留时长的计算方法及装置 | |
CN113535420A (zh) | 一种消息处理方法和装置 | |
CN115776486A (zh) | 一种基于交换节点分层组团的电子文件交换方法及系统 | |
CN114995780A (zh) | 先入先出缓冲器及先入先出缓冲器的控制方法 | |
US9229792B1 (en) | Method and apparatus for weighted message passing | |
CN109862044B (zh) | 一种转换装置、网络设备及数据传输方法 | |
CN113626221A (zh) | 一种消息入队方法及装置 | |
CN112671883A (zh) | 多功能消息通知系统设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |