CN104050284A - 一种基于单进程的数据异步查询方法及*** - Google Patents
一种基于单进程的数据异步查询方法及*** Download PDFInfo
- Publication number
- CN104050284A CN104050284A CN201410301906.7A CN201410301906A CN104050284A CN 104050284 A CN104050284 A CN 104050284A CN 201410301906 A CN201410301906 A CN 201410301906A CN 104050284 A CN104050284 A CN 104050284A
- Authority
- CN
- China
- Prior art keywords
- file description
- file
- request
- array
- module
- 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.)
- Granted
Links
Classifications
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24549—Run-time optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种单进程的数据异步查询方法及***,建立长连接的服务端,在服务端监听每个客户端发送过来的请求,定义一个文件描述集合用于存储文件描述,定义一个数组用于存储文件描述集合ID和编号,将客户端发送的请求抽象为一个文件描述,放入文件描述集合中,判断是否有新的请求,如果有则将新请求的ID加入数组,否则直接处理数组,每处理完一个请求后,将信息返回给客户端,然后在服务端的数组中将这个请求ID和对应编号删除;本发明通过文件描述集合的方法,将请求的ID放入数组中,程序内部只需处理这个数组,这样就避免通讯程序空闲等待,极大提高通讯程序的查询效率;充分利用端口资源,大幅提高查询效率,减小了***资源的耗费。
Description
技术领域
本发明涉及电信领域,尤其涉及一种基于单进程的数据异步查询方法及***。
背景技术
BOSS***中存在多种查询方式:文件方式,内存方式,数据库方式,不同查询在响应速度上有不同的要求。
电信未出账话费查询,要求查询结果在很短的时间内返回给客户端,否则造成客户端积压,会造成难以估计后果,然而现有的任务处理方法,是客户端每发起一个请求,服务端就新建一个子进程处理这笔请求,这就造成了主机有过多的进程,还有很多僵死的进程无法处理,造成主机设备压力较大。
因此,需要研发一种新的查询方式及***,能在消耗尽量少的***资源的情况下,迅速响应客户端的查询请求。
发明内容
本发明所要解决的技术问题是提供一种在尽量少的消耗***资源的情况下,迅速响应客户端请求的查询方法。
本发明解决上述技术问题的技术方案如下:一种基于单进程的异步查询方法,包括如下步骤:
步骤1:建立长连接的服务端,并在服务端内建立一个文件描述集合及存储文件描述集合ID和其编号的数组;
步骤2:服务端实时监听客户端请求,每收到一条请求将请求抽象成一个文件描述;
步骤3:判断文件描述集合是否为空,如果是则直接执行步骤4,否则清空文件描述集合,执行步骤4;
步骤4:将文件描述放入文件描述集合中,并将此时文件描述集合对应的ID及其编号存入数组中;
步骤5:根据数组中文件描述集合ID的最大值,判断文件描述集合的描述是否发生变化,如果发生变化,执行步骤6;否则直接执行步骤7;
步骤6:检测文件描述是否加入了文件描述集合,如果加入了则将文件集合的ID和编号加入数组中,执行步骤7;否则直接执行步骤7;
步骤7:用一个FOR循环处理存储模块,利用查询函数取得查询结果,将查询结果返回给客户端;
步骤8:将数组中对应的文件描述集合ID和编号删除。
本发明的有益效果是:实现单进程异步查询,避免通讯程序空闲等待,极大提高了未出账话费查询的效率;大幅提高查询效率,减小了***资源的耗费。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述用于存储文件描述集合对应ID和编号的数组可采用链表替换。
进一步,所述查询请求包括客户端ID和查询内容信息。
本发明解决上述技术问题的另一技术方案如下:一种基于单进程的数据异步查询***,包括若干个客户端和一个服务端,所述服务端包括请求接收模块、文件描述集合、存储模块、请求处理模块、结果反馈模块和数据删除模块;
所述请求接收模块,其用于接收各个客户端发送的查询请求,并将查询请求抽象为文件描述发送给文件描述集合;
所述文件描述集合,其用于存储请求接收模块发送的查询请求的文件描述;
所述存储模块,其用于存储文件描述集合对应的ID和编号;
所述请求处理模块,其用于循环处理存储模块,调用查询函数取得查询结果,将查询出结果反馈给结果返回模块;
所述结果返回模块,其用于将请求处理模块发送的处理结果反馈给相应客户端;
所述数据删除模块,其用于将存储模块中已处理完的文件描述集合ID和编号删除。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述存储模块可采用数组或链表。
进一步,所述查询请求包括客户端ID和查询内容信息。
附图说明
图1为本发明所述一种单进程的数据异步查询方法流程图;
图2为本发明所述一种单进程的数据异步查询***框图。
附图中,各标号所代表的部件列表如下:
100、客户端,200、服务端,201请求接收模块,202、文件描述集合,203、存储模块,204、请求处理模块,205、结果反馈模块,206、数据删除模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种基于单进程的数据异步查询方法,包括如下步骤:
步骤1:建立长连接的服务端,并在服务端内建立一个文件描述集合及存储文件描述集合ID和其编号的数组;
步骤2:服务端实时监听客户端请求,每收到一条请求将请求抽象成一个文件描述;
步骤3:判断文件描述集合是否为空,如果是则直接执行步骤4,否则清空文件描述集合,执行步骤4;
步骤4:将文件描述放入文件描述集合中,并将此时文件描述集合对应的ID及其编号存入数组中;
步骤5:根据数组中文件描述集合ID的最大值,判断文件描述集合的描述是否发生变化,如果发生变化,执行步骤6;否则直接执行步骤7;
步骤6:检测文件描述是否加入了文件描述集合,如果加入了则将文件集合的ID和编号加入数组中,执行步骤7;否则直接执行步骤7;
步骤7:用一个FOR循环处理存储模块,利用查询函数取得查询结果,将查询结果返回给客户端;
步骤8:将数组中对应的文件描述集合ID和编号删除。
其中,所述用于存储文件描述集合对应ID和编号的数组可采用链表替换。
其中,所述查询请求包括客户端ID和查询内容信息。
如图2所示,一种基于单进程的数据异步查询***,包括若干个客户端100和一个服务端200,所述服务端包括请求接收模块201、文件描述集合202、存储模块203、请求处理模块204、结果反馈模块205和数据删除模块206;
所述请求接收模块201,其用于接收各个客户端发送的查询请求,并将查询请求抽象为一个文件描述发送给文件描述集合202;
所述文件描述集合202,其用于存储请求接收模块201发送的文件描述;
所述存储模块203,其用于存储文件描述集合对应ID和编号;
所述请求处理模块204,循环处理存储模块203,调用处理函数并将处理结果发送给结果反馈模块204;
所述结果返回模块205,其用于将请求处理模块204发送的处理结果反馈给相应客户端;
所述数据删除模块206,其用于将存储模块中已经处理的文件描述集合对应的ID和编号删除。
其中,所述存储模块203可采用数组或链表。
其中,所述查询请求包括客户端ID和查询内容信息。
本发明涉及一种单进程的异步查询方法,包括建立一个长连接的服务端,在服务端内部监听每个客户端发送过来的请求,定义一个文件描述集合用于存储文件描述,定义一个数组用于存储文件描述集合ID和对应ID的编号,将客户端发送过来请求的ID当成一个文件描述,放入文件描述集合中。判断是否有新的请求,如果有将新请求的ID加入数组,否则,循环处理存储模块,每处理完一个请求后,将信息返回给客户端然后在服务端的数组中将这个请求ID和对应编号删除。现有查询***是客户端每发起一个请求,服务端就建立一个子进程处理这笔请求,这就造成了主机有过多的进程,还有很多僵死的进程无法处理,造成主机设备压力较大。本发明可以通过文件描述集合的方法,将请求的ID放入数组中,程序内部只需处理这个数组,这样就避免通讯程序空闲等待,极大提高通讯程序的查询效率;充分利用端口资源。大幅提高查询效率,减小了***资源的耗费。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于单进程的数据异步查询方法,其特征在于,包括如下步骤:
步骤1:建立长连接的服务端,并在服务端内建立一个文件描述集合及存储文件描述集合ID和其编号的数组;
步骤2:服务端实时监听客户端请求,每收到一条请求将请求抽象成一个文件描述;
步骤3:判断文件描述集合是否为空,如果是则直接执行步骤4,否则清空文件描述集合,执行步骤4;
步骤4:将文件描述放入文件描述集合中,并将此时文件描述集合对应的ID及其编号存入数组中;
步骤5:根据数组中文件描述集合ID的最大值,判断文件描述集合的描述是否发生变化,如果发生变化,执行步骤6;否则直接执行步骤7;
步骤6:检测文件描述是否加入了文件描述集合,如果加入了则将文件集合的ID和编号加入数组中,执行步骤7;否则直接执行步骤7;
步骤7:用一个FOR循环处理存储模块,利用查询函数取得查询结果,将查询结果返回给客户端;
步骤8:将数组中对应的文件描述集合ID和编号删除。
2.根据权利要求1所述一种基于单进程的数据异步查询方法,其特征在于,所述用于存储文件描述集合对应ID和编号的数组可采用链表替换。
3.根据权利要求1所述一种基于单进程的数据异步查询方法,其特征在于,所述查询请求包括客户端ID和查询内容信息。
4.一种基于单进程的数据异步查询***,其特征在于,包括若干个客户端和一个服务端,所述服务端包括请求接收模块、文件描述集合、存储模块、请求处理模块、结果反馈模块和数据删除模块;
所述请求接收模块,其用于接收各个客户端发送的查询请求,并将查询请求抽象为文件描述发送给文件描述集合;
所述文件描述集合,其用于存储请求接收模块发送的查询请求的文件描述;
所述存储模块,其用于存储文件描述集合对应的ID和编号;
所述请求处理模块,其用于循环处理存储模块,调用查询函数取得查询结果,将查询出结果反馈给结果返回模块;
所述结果返回模块,其用于将请求处理模块发送的处理结果反馈给相应客户端;
所述数据删除模块,其用于将存储模块中已处理完的文件描述集合ID和编号删除。
5.根据权利要求4所述一种基于单进程的数据异步查询***,其特征在于,所述存储模块可采用数组或链表。
6.根据权利要求4所述一种基于单进程的数据异步查询***,其特征在于,所述查询请求包括客户端ID和查询内容信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410301906.7A CN104050284B (zh) | 2014-06-27 | 2014-06-27 | 一种基于单进程的数据异步查询方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410301906.7A CN104050284B (zh) | 2014-06-27 | 2014-06-27 | 一种基于单进程的数据异步查询方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104050284A true CN104050284A (zh) | 2014-09-17 |
CN104050284B CN104050284B (zh) | 2017-11-10 |
Family
ID=51503116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410301906.7A Active CN104050284B (zh) | 2014-06-27 | 2014-06-27 | 一种基于单进程的数据异步查询方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104050284B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105391776A (zh) * | 2015-10-20 | 2016-03-09 | 上海斐讯数据通信技术有限公司 | 长连接消息的通信方法及*** |
CN106933850A (zh) * | 2015-12-29 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 网络数据查询方法、装置和*** |
CN112416322A (zh) * | 2020-11-20 | 2021-02-26 | 城云科技(中国)有限公司 | 一种根据自循环函数获取数据集中前一个数据的实现方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1217538A1 (en) * | 2000-12-22 | 2002-06-26 | Sun Microsystems, Inc. | Client capability detection in a client and server system |
EP2259548A2 (en) * | 2005-05-25 | 2010-12-08 | Microsoft Corporation | Data communication coordination with sequence numbers |
CN102222071A (zh) * | 2010-04-16 | 2011-10-19 | 华为技术有限公司 | 数据同步处理方法、设备及*** |
CN103051724A (zh) * | 2012-12-28 | 2013-04-17 | 北京思特奇信息技术股份有限公司 | 一种基于长连接的套接字同步方法 |
CN103064960A (zh) * | 2012-12-31 | 2013-04-24 | 华为技术有限公司 | 数据库查询方法及设备 |
CN103442029A (zh) * | 2013-07-29 | 2013-12-11 | 广东电网公司电力科学研究院 | 异构实时历史数据库同步方法和*** |
-
2014
- 2014-06-27 CN CN201410301906.7A patent/CN104050284B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1217538A1 (en) * | 2000-12-22 | 2002-06-26 | Sun Microsystems, Inc. | Client capability detection in a client and server system |
EP2259548A2 (en) * | 2005-05-25 | 2010-12-08 | Microsoft Corporation | Data communication coordination with sequence numbers |
CN102222071A (zh) * | 2010-04-16 | 2011-10-19 | 华为技术有限公司 | 数据同步处理方法、设备及*** |
CN103051724A (zh) * | 2012-12-28 | 2013-04-17 | 北京思特奇信息技术股份有限公司 | 一种基于长连接的套接字同步方法 |
CN103064960A (zh) * | 2012-12-31 | 2013-04-24 | 华为技术有限公司 | 数据库查询方法及设备 |
CN103442029A (zh) * | 2013-07-29 | 2013-12-11 | 广东电网公司电力科学研究院 | 异构实时历史数据库同步方法和*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105391776A (zh) * | 2015-10-20 | 2016-03-09 | 上海斐讯数据通信技术有限公司 | 长连接消息的通信方法及*** |
CN106933850A (zh) * | 2015-12-29 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 网络数据查询方法、装置和*** |
CN106933850B (zh) * | 2015-12-29 | 2020-08-07 | 阿里巴巴集团控股有限公司 | 网络数据查询方法、装置和*** |
CN112416322A (zh) * | 2020-11-20 | 2021-02-26 | 城云科技(中国)有限公司 | 一种根据自循环函数获取数据集中前一个数据的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104050284B (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104737157B (zh) | 联合数据库*** | |
CN108897854B (zh) | 一种超时任务的监控方法和装置 | |
CN105049268A (zh) | 分布式计算资源分配***和任务处理方法 | |
CN101556678A (zh) | 一种批处理业务的处理方法、***及业务处理控制设备 | |
CN103957246A (zh) | 基于租户感知的动态负载均衡方法及*** | |
CN102902752A (zh) | 一种日志监控方法及*** | |
CN111538605B (zh) | 一种分布式数据访问层中间件及命令执行方法和装置 | |
CN105491078B (zh) | Soa***中的数据处理方法及装置、soa*** | |
CN103177035A (zh) | 一种在数据库中查询数据的装置及方法 | |
CN104050284A (zh) | 一种基于单进程的数据异步查询方法及*** | |
CN103810203A (zh) | 一种数据库管理***连接复用方法及装置 | |
WO2023082681A1 (zh) | 基于批流一体的数据处理方法、装置、计算机设备和介质 | |
CN105512188A (zh) | 数据连接方法和数据连接*** | |
CN108881651A (zh) | 呼叫平台的数据处理方法、装置、设备及存储介质 | |
CN102456004A (zh) | 一种页面数据查询控制方法及*** | |
CN105227386B (zh) | 用于分群体统计在线用户数的方法、装置及*** | |
CN108259605B (zh) | 一种基于多数据中心的数据调用***及方法 | |
CN105872082B (zh) | 基于容器集群负载均衡算法的细粒度资源响应*** | |
CN104850431B (zh) | 基于fota升级的稳定处理方法和装置 | |
CN103744880B (zh) | 一种基于云计算的dna数据管理方法及*** | |
CN106408490A (zh) | 一种激活工单处理方法和激活工单处理装置 | |
CN112099864A (zh) | 一种异步数据的处理方法及装置 | |
CN108965403A (zh) | 运维监控连接的建立方法及终端设备 | |
CN111376255B (zh) | 机器人数据采集方法、装置及终端设备 | |
CN106775818A (zh) | 基于can总线的ecu升级方法及ecu升级设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |