CN117076492A - 业务数据查询方法、装置、设备及存储介质 - Google Patents
业务数据查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117076492A CN117076492A CN202311129171.XA CN202311129171A CN117076492A CN 117076492 A CN117076492 A CN 117076492A CN 202311129171 A CN202311129171 A CN 202311129171A CN 117076492 A CN117076492 A CN 117076492A
- Authority
- CN
- China
- Prior art keywords
- query
- query request
- request
- key
- request key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 131
- 230000008569 process Effects 0.000 claims abstract description 83
- 230000004044 response Effects 0.000 claims abstract description 44
- 239000002699 waste material Substances 0.000 abstract description 6
- 238000004364 calculation method Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- 238000013523 data management Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000004886 process control Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000011112 process operation Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/24539—Query rewriting; Transformation using cached or materialised query results
-
- 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/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种业务数据查询方法、装置、设备及存储介质。该方法包括:接收来自客户端的查询请求;生成所述查询请求的查询请求键;根据所述查询请求键,从缓存数据库中获取所述查询请求对应的查询结果;若所述缓存数据库中不存在所述查询请求对应的查询结果,则根据所述查询请求键,确定是否存在正在运行的与所述查询请求键对应的查询进程;若确定无正在运行的与所述查询请求键对应的查询进程,则运行所述查询进程,以获取所述查询请求对应的查询结果;向所述客户端发送第一查询响应,所述第一查询响应携带有所述查询结果。本申请的方法,能够避免计算资源的浪费。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种业务数据查询方法、装置、设备及存储介质。
背景技术
业务数据管理系统中存储有大量的业务数据明细,当用户需要对业务数据进行聚合查询时,业务数据管理系统的服务端需要对相应的业务数据进行聚合运算,例如对业务数据进行求和运算,需要的时间较长。
若服务端针对每次查询请求都进行聚合运算,查询请求耗时较长,因此,可以将查询请求对应的查询结果存储至缓存数据库中,查询时从缓存数据库中获取存储的查询请求对应的查询结果进行响应,以提高响应速率。当缓存数据库中不存在查询请求对应的查询结果时,再去执行该查询请求对应的业务查询逻辑的查询进程,以获取查询结果。
但上述方式存在同时运行同一查询请求对应的多个查询进程的情况,导致重复计算,浪费服务端的计算资源。
发明内容
本申请提供一种业务数据查询方法、装置、设备及存储介质,用以解决计算资源浪费的技术问题。
第一方面,本申请提供一种业务数据查询方法,包括:
接收来自客户端的查询请求;
生成所述查询请求的查询请求键;
根据所述查询请求键,从缓存数据库中获取所述查询请求对应的查询结果;
若所述缓存数据库中不存在所述查询请求对应的查询结果,则根据所述查询请求键,确定是否存在正在运行的与所述查询请求键对应的查询进程;
若确定无正在运行的与所述查询请求键对应的查询进程,则运行所述查询进程,以获取所述查询请求对应的查询结果;
向所述客户端发送第一查询响应,所述第一查询响应携带有所述查询结果。
可选地,所述根据所述查询请求键,确定是否存在正在运行的与所述查询请求键对应的查询进程,包括:
根据所述查询请求键,查询所述查询请求键对应的分布式锁的状态;
若所述分布式锁为解锁状态,则确定不存在正在运行的与所述查询请求键对应的查询进程;
若所述分布式锁为锁定状态,则确定存在正在运行的与所述查询请求键对应的查询进程。
可选地,所述获取所述查询请求对应的查询结果之后,还包括:
将所述查询请求键以及所述查询结果存储至所述缓存数据库中。
可选地,所述将所述查询请求键以及所述查询结果存储至所述缓存数据库中,包括:
将所述查询请求键、所述查询结果,所述查询请求的业务类型,所述查询请求中携带的请求参数、以及,所述查询结果的失效时间存储至所述缓存数据库中。
可选地,所述生成所述查询请求的查询请求键,包括:
对所述查询请求中的查询参数进行哈希运算,得到所述查询请求键。
可选地,所述方法还包括:
若所述缓存数据库中不存在所述查询请求对应的查询结果,或,存在正在运行的与所述查询请求键对应的查询进程,则向所述客户端发送第二查询响应,所述第二查询响应用于表征所述查询请求正在处理中。
可选地,所述方法还包括:
再次接收来自所述客户端的所述查询请求,直至向所述客户端发送所述第一查询响应。
第二方面,本申请提供一种业务数据查询装置,包括:
接收模块,用于接收来自客户端的查询请求;
生成模块,用于生成所述查询请求的查询请求键;
获取模块,用于根据所述查询请求键,从缓存数据库中获取所述查询请求对应的查询结果;
确定模块,用于当所述缓存数据库中不存在所述查询请求对应的查询结果时,根据所述查询请求键,确定是否存在正在运行的与所述查询请求键对应的查询进程;
运行模块,用于当确定无正在运行的与所述查询请求键对应的查询进程时,运行所述查询进程,以获取所述查询请求对应的查询结果;
发送模块,用于向所述客户端发送第一查询响应,所述第一查询响应携带有所述查询结果。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面中任一项所述的业务数据查询方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的业务数据查询方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面任一项所述的业务数据查询方法。
第六方面,本申请提供一种芯片,所述芯片上存储有计算机程序,所述计算机程序被所述芯片执行时,实现如第一方面任一项所述的业务数据查询方法。
本申请提供的业务数据查询方法、装置、设备及存储介质,利用查询请求对应的查询请求键,从缓存数据库中获取该查询请求对应的查询结果时,当在缓存数据库中不存在查询请求对应的查询结果时,先确定是否存在正在运行的该查询请求对应的查询进程,以保障在服务端仅有该查询请求对应的一个查询进程在运行,避免计算资源的浪费。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为一种业务数据管理系统的结构示意图;
图2为本申请提供的一种业务数据查询方法的流程示意图;
图3为本申请提供的另一种业务数据查询方法的流程示意图;
图4为本申请提供的一种业务数据查询装置的结构示意图;
图5为本申请提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1为一种业务数据管理系统的结构示意图。如图1所示,该系统包括客户端和服务端。
上述业务数据管理系统用于管理企业各类业务数据的明细。
上述客户端,用于接收用户的查询请求。该客户端可以是全球广域网(World WideWeb,web)版的客户端,也可以是应用程序(Application,app)版的客户端。
上述服务端,用于存储各种业务数据,并根据客户端触发的查询请求,获取该查询请求对应的查询结果。该服务端可以是服务器或者服务器集群。
该服务端可以单独部署在任意环境中的电子设备上,例如单独部署在局域网中的服务器上,也可以全部部署在云端环境中,或者是分布式地部署在不同环境中,例如上述服务端可以在逻辑上分成多个部分,每个部分具有不同的功能,可以部分部署在云端环境中,部分部署在其他环境中。
一种可能的实现方式,上述业务数据管理系统可以包括缓存数据库,用于存储查询请求对应的查询结果。该缓存数据库可以集成于前述服务端中,作为该服务端的一个节点;也可以独立设置。该缓存数据库,例如可以是远程字典服务(Remote DictionaryServer,Redis)数据库、Elasticsearch(ES)服务器等。当采用ES服务器作为缓存数据库时,其缓存的数据容量大于采用Redis数据库作为缓存数据库时的数据容量。这是因为Redis数据库是基于内存进行存储的,其存储容量受到内存大小的限制,而ES服务器是基于硬盘存储的。
一种可能的实现方式,上述业务数据管理系统可以包括查询进程控制装置,用于为查询进程设置分布式锁,以排他性地运行查询进程。该查询进程是指业务查询逻辑,该查询进程控制装置可以和上述服务端集成在一起,也可以独立设置。该查询进程控制装置例如可以是Redis数据库。
目前,现有技术中,通常将已经运行过查询进程获取到查询结果的查询请求存储起来,例如存储到前述缓存数据库中,即,建立查询请求和查询结构的映射关系,查询时从缓存数据库中获取存储的查询请求对应的查询结果进行响应,以提高响应速率。当查询请求对应的查询结果在缓存数据库中未存储时,再去执行该查询请求对应的查询进程,以获取查询结果。
但上述方式存在服务端针对一个查询请求同时运行了多个相同的查询进程,例如,服务端接收到了多个客户端发送的同一查询请求,并且该缓存数据库中未存储该查询请求对应的查询结果,此时服务端会运行多个该查询请求对应的查询进程。这样会导致重复计算,浪费服务端的计算资源。
有鉴于此,本申请提出了一种业务数据查询方法,在从缓存数据库中未获取到查询请求对应的查询结果时,先确定该查询请求对应的查询进程是否正在运行,再确定是否运行该查询请求对应的查询进程,以保障同一时间不存在相同的查询进程重复运行,节约计算资源。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请提供的一种业务数据查询方法的流程示意图。如图2所示,该方法包括:
S101、客户端向服务端发送查询请求。
该查询请求用于表征待查询的业务数据。上述客户端通过获取用户输入的查询参数,触发查询请求,并将该查询请求发送至上述服务端。该查询请求中携带有查询参数,该查询参数例如可以是待查询的业务数据的名称。
相应地,服务端接收来自客户端的查询请求。
S102、服务端生成该查询请求的查询请求键。
上述查询请求键,是该查询请求的标识,用于表征该查询请求。
一种可能的实现方式,服务端预先将查询请求和查询请求键建立起映射关系表,服务端根据该映射关系表为该查询请求分配查询请求键。另一种可能的实现方式,对该查询请求中的查询参数进行哈希运算,得到该查询请求的查询请求键。
需说明,对上述查询请求中的查询参数按照预设的顺序进行排序后在进行哈希运算,例如按照查询参数的首字母顺序进行排序,以保证相同查询请求对应的哈希值相同。
S103、服务端根据查询请求的查询请求键,从缓存数据库中获取该查询请求对应的查询结果。
需说明,上述缓存数据库中存储有已经查询过的查询请求对应的查询结果,即,该缓存数据库中存储有部分查询请求的查询请求键和查询结果的映射关系。
若该缓存数据库返回该查询请求键对应的查询结果,则执行步骤S106;若该缓存数据库返回预设值,例如返回0,说明该缓存数据库中不存在该查询请求键对应的查询结果,则执行步骤S104。
可选的,若该缓存数据库中不存在该查询请求键对应的查询结果,可以执行步骤S104的同时,向上述客户端发送第二查询响应,该第二查询响应用于表征该查询请求正在处理中。由于执行该查询请求对应的查询进程的耗时较长,该方式可以提示用户该查询请求正在处理中,而非网络卡顿,以避免用户因为网络卡顿的原因中断查询请求,例如取消查询,影响用户体验。
S104、服务端根据该查询请求对应的查询请求键,确定是否存在正在运行的与查询请求键对应的查询进程。
该步骤意在判断该服务端是否正在运行该查询请求键对应的查询进程,避免对同一查询请求键(即,查询请求)运行多个相同的查询进程,造成计算资源的浪费。
一种可能的实现方式,服务端预先为查询请求键,和其对应的查询进程的标识建立映射关系,并预设查询进程运行列表,用于存储正在运行的查询进程的标识。服务端运行一个查询进程时,将该查询进程的标识存储至查询进程运行列表中,运行完后从该查询进程运行列表中删除该查询进程的标识。那么,便可以根据该查询进程列表和该查询请求对应的查询请求键,确定是否存在正在运行的与查询请求键对应的查询进程。
另一种可能的实现方式,服务端为查询进程设置分布式锁,用于排他性地运行该查询进程。服务端可以根据该查询请求对应的查询请求键,去获取该查询请求键对应的分布式锁的状态,再根据分布式锁的状态,确定是否存在正在运行的与查询请求键对应的查询进程。
若确定不存在正在运行的与查询请求键对应的查询进程,则执行步骤S105。
若确定存在正在运行的与查询请求键对应的查询进程,一种可能的实现方式,可以等待该正在运行的与查询请求键对应的查询进程运行完毕后,获取该查询请求对应的查询结果后,执行步骤S106;另一种可能的实现方式,可以向上述客户端发送第二查询响应,用于表征该查询请求正在处理中。由于执行该查询请求对应的查询进程的耗时较长,该方式可以提示用户该查询请求正在处理中,而非网络卡顿,以避免用户因为网络卡顿的原因中断查询请求,例如取消查询,影响用户体验。
S105、服务端运行该查询请求对应的查询进程,以获取该查询请求对应的查询结果。
需说明,关于如何运行该查询请求对应的查询进程本申请不做限定,可以参考现有技术。
在获取到该查询请求对应的查询结果后,一种可能的实现方式,可以将该查询请求对应的查询请求键和查询结果存储至缓存数据库中,以便后续可以直接从该缓存数据库中获取该查询请求对应的查询结果,无需再次运行该查询请求对应的查询进程。另一种可能的实现方式,可以将查询请求键、查询请求对应的查询结果,该查询请求的业务类型,该查询请求中携带的请求参数、以及,该查询结果的失效时间存储至缓存数据库中。
上述查询请求的业务类型是指该查询请求中携带的请求参数的组合的业务类型。应理解,服务端提前预设请求参数的组合与业务类型的映射关系。上述查询结果的失效时间是指该查询结果在缓存数据库中的有效时间。应理解,服务端可以根据业务类型设置该业务类型的查询结果的是失效时间。通过该方式,可以将与该查询请求相关的上述各类信息存储至缓存数据库中,并为不同业务类型的查询请求对应的查询结果设置不通过的失效时间,有利于个性化地管理查询结果数据。
可选的,前述缓存数据库采用ES服务器时,ES服务器可以根据上述查询请求的业务类型,和/或,查询请求中携带的请求参数对该缓存数据库中存储的查询结果进行管理,例如某一业务类型的数据发生了变化,可以根据业务类型搜索相关的查询结果,并将其删除。ES服务器还可以定时轮询上述缓存数据库中的失效时间,将达到失效时间的查询结果删除,以保障缓存数据库中查询结果的准确性。
S106、服务端向客户端发送第一查询响应,该第一查询响应携带有该查询请求对应的查询结果。
可选的,查询响应可以包括查询状态码,用于表征该查询请求的状态,例如预设数值与查询状态的映射关系。表1为本申请提供的一种状态码和查询请求状态的映射关系。
表1状态码与查询请求状态
状态码 | 查询请求状态 |
111 | 成功 |
222 | 等待 |
可选的,上述客户端接收到任一查询响应后,根据该查询响应中包括的查询状态码判断查询请求的状态,若查询请求状态为成功,表征该查询响应为第一查询响应,客户端根据预设的显示模板,和该第一查询响应中携带的该查询请求对应的查询结果,在客户端显示该查询请求对应的查询结果。
若上述查询请求状态为等待,表征该查询响应为第二查询响应,客户端显示该查询请求正在查询中的提示信息,并且会自动根据预设的间隔时间再次发起该查询请求,或者是,接收用户再次触发的该查询请求,以使服务端基于再次发起的该查询请求,重新执行前述步骤S102-106,直至获取到第一查询响应。相应地,服务端会再次接收来自客户端的查询请求,重新执行前述步骤S102-106,直至向客户端发送第一查询响应。
可选的,上述状态码还可以用于表示查询请求状态错误,例如在查询时查询进程出现错误,本申请在此不做限定,可以根据实际需求进行设置。
本申请提供的业务数据查询方法,利用查询请求对应的查询请求键,从缓存数据库中获取该查询请求对应的查询结果时,当在缓存数据库中不存在查询请求对应的查询结果时,先确定是否存在正在运行的该查询请求对应的查询进程,以保障在服务端仅有该查询请求对应的一个查询进程在运行,避免计算资源的浪费。
下面以服务端为查询进程设置分布式锁,用于排他性地运行该查询进程为例,对如何根据查询请求键,确定是否存在正在运行的与查询请求键对应的查询进程进行说明。
根据查询请求对应的查询请求键,查询该查询请求键对应的分布式锁的状态。
需说明,以前述所说的查询进程控制装置为Redis数据库为例,上述服务端可以向该查询进程控制装置发送为该查询请求键设置分布式锁的命令,例如setnx key value,其中key用于表征该查询请求键,该命令会先判断该key是否已经存在。若存在,则向服务端返回第一返回码,用于表征该查询请求键对应的分布式锁为锁定状态;若不存在,则为该key设置一个value,并向服务端返回第二返回码,用于表征该查询请求键对应的分布式锁为解锁状态。
若上述查询请求键对应的分布式锁为解锁状态,则确定不存在正在运行的与该查询请求键对应的查询进程;若上述查询请求键对应的分布式锁为锁定状态,则确定存在正在运行的与该查询请求键对应的查询进程。
本申请提供的业务数据查询方法,利用分布式锁的方式可以排他性地运行查询请求键对应的查询进程,保障在同一时间不存在重复的查询进程同时运行,节约计算资源。
下面以服务端为查询进程设置分布式锁为例,对本申请提供的业务数据查询方法进行说明。图3为本申请提供的另一种业务数据查询方法的流程示意图,如图3所示,该方法包括:
S201、客户端向服务端发送查询请求。
相应地,服务端接收来自客户端的查询请求。
S202、服务端生成该查询请求的查询请求键。
S203、服务端根据查询请求的查询请求键,从缓存数据库中获取该查询请求对应的查询结果。
若该缓存数据库返回该查询请求键对应的查询结果,则执行步骤S206;若该缓存数据库返回预设值,例如返回0,说明该缓存数据库中不存在该查询请求键对应的查询结果,则执行步骤S204。
S204、服务端根据该查询请求对应的查询请求键,获取该查询请求键对应的分布式锁的状态,以确定是否存在正在运行的与查询请求键对应的查询进程。
若上述查询请求键对应的分布式锁为解锁状态,说明确定不存在正在运行的与该查询请求键对应的查询进程,则执行步骤S205;若上述查询请求键对应的分布式锁为锁定状态,说明确定存在正在运行的与该查询请求键对应的查询进程,则执行步骤S207。
S205、服务端运行该查询请求对应的查询进程,以获取该查询请求对应的查询结果。
S206、服务端向客户端发送第一查询响应,该第一查询响应携带有该查询请求对应的查询结果。
S207、服务端向客户端发送第二查询响应。
S208、客户端判断接收到的响应的状态码。
若状态码表征查询请求状态为成功,即获取到了查询结果,则执行步骤S209;若状态码表征查询请求状态为等待,则执行步骤210。
S209、客户端显示查询结果。
S210、客户端显示正在查询,并自动向服务端再次发送上述查询请求。
相应地,服务端会再次接收来自客户端的查询请求,并执行步骤S202。
本申请提供的业务数据查询方法,在缓存数据库中未存储查询请求对应的查询结果时,先利用分布式锁的状态,确定是否存在正在运行的该查询请求对应的查询进程,避免重复运行相同的查询进程,节约计算资源。
图4为本申请提供的一种业务数据查询装置的结构示意图。如图4所示,该装置包括:
接收模块11,用于接收来自客户端的查询请求;
生成模块12,用于生成所述查询请求的查询请求键;
获取模块13,用于根据所述查询请求键,从缓存数据库中获取所述查询请求对应的查询结果;
确定模块14,用于当所述缓存数据库中不存在所述查询请求对应的查询结果时,根据所述查询请求键,确定是否存在正在运行的与所述查询请求键对应的查询进程;
运行模块15,用于当确定无正在运行的与所述查询请求键对应的查询进程时,运行所述查询进程,以获取所述查询请求对应的查询结果;
发送模块16,用于向所述客户端发送第一查询响应,所述第一查询响应携带有所述查询结果。
一种可能的实现方式,上述确定模块14,具体用于根据所述查询请求键,查询所述查询请求键对应的分布式锁的状态;若所述分布式锁为解锁状态,则确定不存在正在运行的与所述查询请求键对应的查询进程;若所述分布式锁为锁定状态,则确定存在正在运行的与所述查询请求键对应的查询进程。
一种可能的实现方式,上述运行模块15,获取所述查询请求对应的查询结果之后,存储模块17,用于将所述查询请求键以及所述查询结果存储至所述缓存数据库中。
一种可能的实现方式,上述存储模块17,具体用于将所述查询请求键、所述查询结果,所述查询请求的业务类型,所述查询请求中携带的请求参数、以及,所述查询结果的失效时间存储至所述缓存数据库中。
一种可能的实现方式,上述生成模块12,具体用于对所述查询请求中的查询参数进行哈希运算,得到所述查询请求键。
一种可能的实现方式,当所述缓存数据库中不存在所述查询请求对应的查询结果,或,存在正在运行的与所述查询请求键对应的查询进程时,上述发送模块16,具体用于向所述客户端发送第二查询响应,所述第二查询响应用于表征所述查询请求正在处理中。
一种可能的实现方式,上述接收模块11,具体用于再次接收来自所述客户端的所述查询请求,直至向所述客户端发送所述第一查询响应。
上述业务数据查询装置的各功能模块配合可以执行上述实施例中描述的业务数据查询方法,其实现原理与技术效果类似,对此不再赘述。
图5为本申请提供的一种电子设备的结构示意图。如图5所示,该电子设备可以包括:至少一个处理器301、存储器302。该电子设备可以是终端、服务器、计算机设备等具有处理能力的设备。
存储器302,用于存储程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器302可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器301用于执行存储器302存储的计算机执行指令,以实现前述方法实施例所描述的业务数据查询方法。其中,处理器301可能是一个中央处理器(Central ProcessingUnit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
该电子设备300还可以包括通信接口303,以通过通信接口303可以与外部设备进行通信交互。外部设备例如可以是计算机、平板等。
在具体实现上,如果通信接口303、存储器302和处理器301独立实现,则通信接口303、存储器302和处理器301可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口303、存储器302和处理器301集成在一块芯片上实现,则通信接口303、存储器302和处理器301可以通过内部接口完成通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有计算机执行指令,计算机执行指令用于上述实施例中的业务数据查询方法。
本申请还提供一种计算机程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。电子设备300的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得电子设备300实施上述的各种实施方式提供的方法。
本申请还提供一种芯片,所述芯片上存储有计算机程序,所述计算机程序被所述芯片执行时,实现各种实施方式提供的方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种业务数据查询方法,其特征在于,所述方法包括:
接收来自客户端的查询请求;
生成所述查询请求的查询请求键;
根据所述查询请求键,从缓存数据库中获取所述查询请求对应的查询结果;
若所述缓存数据库中不存在所述查询请求对应的查询结果,则根据所述查询请求键,确定是否存在正在运行的与所述查询请求键对应的查询进程;
若确定无正在运行的与所述查询请求键对应的查询进程,则运行所述查询进程,以获取所述查询请求对应的查询结果;
向所述客户端发送第一查询响应,所述第一查询响应携带有所述查询结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述查询请求键,确定是否存在正在运行的与所述查询请求键对应的查询进程,包括:
根据所述查询请求键,查询所述查询请求键对应的分布式锁的状态;
若所述分布式锁为解锁状态,则确定不存在正在运行的与所述查询请求键对应的查询进程;
若所述分布式锁为锁定状态,则确定存在正在运行的与所述查询请求键对应的查询进程。
3.根据权利要求2所述的方法,其特征在于,所述获取所述查询请求对应的查询结果之后,还包括:
将所述查询请求键以及所述查询结果存储至所述缓存数据库中。
4.根据权利要求3所述的方法,其特征在于,所述将所述查询请求键以及所述查询结果存储至所述缓存数据库中,包括:
将所述查询请求键、所述查询结果,所述查询请求的业务类型,所述查询请求中携带的请求参数、以及,所述查询结果的失效时间存储至所述缓存数据库中。
5.根据权利要求4所述的方法,其特征在于,所述生成所述查询请求的查询请求键,包括:
对所述查询请求中的查询参数进行哈希运算,得到所述查询请求键。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
若所述缓存数据库中不存在所述查询请求对应的查询结果,或,存在正在运行的与所述查询请求键对应的查询进程,则向所述客户端发送第二查询响应,所述第二查询响应用于表征所述查询请求正在处理中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
再次接收来自所述客户端的所述查询请求,直至向所述客户端发送所述第一查询响应。
8.一种业务数据查询装置,其特征在于,包括:
接收模块,用于接收来自客户端的查询请求;
生成模块,用于生成所述查询请求的查询请求键;
获取模块,用于根据所述查询请求键,从缓存数据库中获取所述查询请求对应的查询结果;
确定模块,用于当所述缓存数据库中不存在所述查询请求对应的查询结果时,根据所述查询请求键,确定是否存在正在运行的与所述查询请求键对应的查询进程;
运行模块,用于当确定无正在运行的与所述查询请求键对应的查询进程时,运行所述查询进程,以获取所述查询请求对应的查询结果;
发送模块,用于向所述客户端发送第一查询响应,所述第一查询响应携带有所述查询结果。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7任一项所述的业务数据查询方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的业务数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311129171.XA CN117076492A (zh) | 2023-09-04 | 2023-09-04 | 业务数据查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311129171.XA CN117076492A (zh) | 2023-09-04 | 2023-09-04 | 业务数据查询方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117076492A true CN117076492A (zh) | 2023-11-17 |
Family
ID=88702256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311129171.XA Pending CN117076492A (zh) | 2023-09-04 | 2023-09-04 | 业务数据查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117076492A (zh) |
-
2023
- 2023-09-04 CN CN202311129171.XA patent/CN117076492A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213604B (zh) | 一种数据源的管理方法和装置 | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN111475519B (zh) | 数据缓存方法及装置 | |
CN111797091A (zh) | 数据库中数据查询的方法、装置、电子设备和存储介质 | |
CN112559558A (zh) | 一种流水号生成方法和装置、计算设备和存储介质 | |
CN109522043B (zh) | 一种配置数据的管理方法、装置及存储介质 | |
CN1983979A (zh) | 自动更新软件的方法和系统 | |
CN110737681A (zh) | 处理请求的加锁处理方法、装置、计算机设备及存储介质 | |
CN110955460B (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN112328325A (zh) | 模型文件的执行方法、装置、终端设备及存储介质 | |
CN110019372B (zh) | 数据监控方法、装置、服务器及存储介质 | |
US10185735B2 (en) | Distributed database system and a non-transitory computer readable medium | |
CN117076492A (zh) | 业务数据查询方法、装置、设备及存储介质 | |
CN114218317B (zh) | 进度信息管控方法、微服务装置、电子设备及存储介质 | |
CN116069810A (zh) | 数据查询方法、装置及终端设备 | |
CN108475211B (zh) | 无状态系统和用于获得资源的系统 | |
CN111339170A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US20200218708A1 (en) | Methods, Systems, Databases and Network Nodes of Data Communication Networks for Handling Data Posts | |
CN114281872A (zh) | 分布式序列号的生成方法、装置、设备及可读存储介质 | |
CN111221847B (zh) | 监控数据存储方法、装置及计算机可读存储介质 | |
CN110389966B (zh) | 一种信息处理方法及装置 | |
CN112860292A (zh) | 一种基于应用的配置管理方法及装置 | |
CN116547660A (zh) | 使用全局时间戳的分布式数据库事务的方法和装置 | |
CN113407562A (zh) | 分布式数据库系统的通信方法及装置 | |
CN112988874A (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 |