CN113992700B - 一种基于分布式网络的指令解析方法、终端及存储介质 - Google Patents
一种基于分布式网络的指令解析方法、终端及存储介质 Download PDFInfo
- Publication number
- CN113992700B CN113992700B CN202010655446.3A CN202010655446A CN113992700B CN 113992700 B CN113992700 B CN 113992700B CN 202010655446 A CN202010655446 A CN 202010655446A CN 113992700 B CN113992700 B CN 113992700B
- Authority
- CN
- China
- Prior art keywords
- terminal
- key value
- instruction
- target
- distributed network
- 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.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 claims description 47
- 238000013507 mapping Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于分布式网络的指令解析方法、终端及存储介质,所述指令解析方法包括:获取待解析指令,根据所述待解析指令获取所述待解析指令对应的目标指令key值;根据所述目标指令key值确定目标终端;当所述目标终端存储有所述目标指令key值对应的解析结果时,获取所述目标终端返回的所述解析结果。本发明能够有效降低指令解析服务器的负载。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于分布式网络的指令解析方法、终端及存储介质。
背景技术
目前,除了遥控器、触控等传统控制方法以外,多种交互方式已被应用于智能终端控制中,例如手势、语音等方式发出指令,智能终端根据指令的解析结果来执行相应的操作,在现有技术中,一般都是部署相应的服务器,终端每接收到一次指令,都发送给服务器进行解析后再返回给终端,当系统中存在大量的终端时,会导致服务器的负载过大。
因此,现有技术还有待改进和提高。
发明内容
本发明提供一种基于分布式网络的指令解析方法、终端及存储介质,旨在解决现有技术中终端的指令解析导致服务器负载过大的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种基于分布式网络的指令解析方法,其中,所述分布式网络包括多个终端,所述指令解析方法应用于所述分布式网络中的一个终端上,所述指令解析方法包括:
接收待解析指令,根据所述待解析指令对应的目标指令key值确定目标终端;
当所述目标终端存储有所述目标指令key值对应的解析结果时,获取所述解析结果。
所述的指令解析方法,其中,所述根据所述待解析指令对应的目标指令key值确定目标终端之前,所述方法还包括:
将所述待解析指令转化为文本;
对所述文本进行哈希映射得到所述目标指令key值。
所述的基于分布式网络的指令解析方法,其中,所述根据所述待解析指令对应的目标指令key值确定目标终端包括:
获取自身终端key值,根据所述自身终端key值确定对应的数据表,其中,所述数据表中包括N个第一终端key值,N为正整数;
根据所述自身终端key值和所述数据表确定所述目标终端。
所述的基于分布式网络的指令解析方法,其中,所述根据所述自身终端key值确定对应的数据表包括:
根据预设公式确定各个中间终端key值,所述各个中间终端key值用于确定所述数据表中的各个第一终端key值;
分别根据所述各个中间终端key值确定所述数据表中的各个第一终端key值。
所述的基于分布式网络的指令解析方法,其中,所述分别根据所述各个中间终端key值确定所述数据表中的各个第一终端key值包括:
对于所述各个中间终端key值中的第n个中间终端key值,当所述分布式网络中存在所述第n个中间终端key值时,将所述第n个中间终端key值作为所述数据表中的第n个第一终端key值;
当所述分布式网络中不存在所述第n个中间终端key值时,若所述第n个中间终端key值满足大于所述分布式网络中任一个终端key值的条件,则获取所述分布式网络中的第二终端key值作为所述数据表中的第n个第一终端key值,若所述第n个中间终端key值不满足大于所述分布式网络中任一个终端key值的条件,则获取所述分布式网络中的第三终端key值作为所述数据表中的第n个第一终端key值;
其中,n为正整数,所述第二终端key值大于所述分布式网络中的其他任一个终端key值,所述第三终端key值属于第一集合,且所述第三终端key值小于所述第一集合中的其他任一个终端key值,所述第一集合为所述分布式网络中大于所述第n个中间终端key值的终端key值的集合。
所述的基于分布式网络的指令解析方法,其中,所述根据所述自身终端key值和所述数据表确定所述目标终端包括:
当所述目标指令key值小于或等于所述自身终端key值时,将自身作为所述目标终端;
当所述目标指令key值大于所述自身终端key值时,将所述目标指令key值发送至第五终端,以使得所述第五终端执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端;
其中,所述第五终端的终端key值属于第二集合,且所述第五终端的终端key值大于所述第二集合中的其他任一个终端key值,所述第二集合为所述数据表中不大于所述目标指令key值的第一终端key值的集合。
所述的基于分布式网络的指令解析方法,其中,所述根据所述自身终端key值确定对应的数据表之后还包括:
从后继终端中获取第一指令key值以及所述第一指令key值对应的解析结果并存储;
其中,所述后继终端为所述数据表中第一个第一终端key值对应的终端,所述第一指令key值为所述后继终端中存储的小于所述自身终端key值的指令key值。
所述的基于分布式网络的指令解析方法,其中,所述根据所述目标指令key值确定目标终端之后还包括:
当所述目标终端中没有存储所述目标指令key值对应的解析结果时,从服务器中获取所述待解析指令对应的所述解析结果,并将所述解析结果发送至所述目标终端进行存储。
一种终端,其中,所述终端包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令,所述处理器适于调用所述存储介质中的指令,以执行实现上述基于分布式网络的指令解析方法的步骤。
一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述基于分布式网络的指令解析方法的步骤。
有益效果:与现有技术相比,本发明提供了一种基于分布式网络的指令解析方法、终端及存储介质,在所述指令解析方法中,当一个终端获取指令后,在分布式网络中查找存储有该指令的解析结果的目标终端,从目标终端处获取指令解析结果,也就是说,本发明将指令解析结果存储在系统内的各个终端中,当终端接收到指令后,不需要每次都将指令发送给服务器来解析,降低了服务器的负载。
附图说明
图1为本发明提供的基于分布式网络的指令解析方法的实施例的流程图;
图2为本发明提供的基于分布式网络的指令解析方法中确定目标终端的流程示意图;
图3为本发明提供的基于分布式网络的指令解析方法的实施例中步骤S200的子步骤的流程图;
图4为本发明提供的终端的实施例的结构原理图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供的一种指令解析方法,是可以应用在终端中,所述终端包括但不限于各种个人计算机、电视机、手机、平板电脑、可穿戴式设备等。所述终端可以根据本发明提供的基于分布式网络的指令解析方法获取指令的解析结果。
实施例一
请参照图1,图1为本发明提供的基于分布式网络的指令解析方法的一个实施例的流程图。所述指令解析方法包括步骤:
S100、接收待解析指令,根据所述待解析指令对应的目标指令key值确定目标终端。
所述待解析指令是用于控制终端的指令,所述待解析指令可以是由用户直接或通过设备发出,例如,用户可以通过手势、语音或者展示图片等方式发出所述待解析指令,或者通过体感设备发出所述待解析指令。key值是本领域中常用的用于身份标识的值,用于标注唯一性,也就是说,同一类对象的key值具有唯一性,在本实施例中,在本实施例中,执行所述指令解析方法的终端是在一种分布式网络中,所述分布式网络中包括多个终端,在所述分布式网络中的终端接收到的每一个指令,都对应有一个指令key值,且不同的指令对应的指令key值不同,而相同的指令具有相同的指令key值。为了便于区分,将所述待解析指令对应的key值记为目标指令key值。
所述根据所述待解析指令对应的目标指令key值确定目标终端之前,所述方法还包括:
将所述待解析指令转化为文本;
对所述文本进行哈希映射得到所述目标指令key值。
具体地,当终端接收到所述待解析指令后,根据所述待解析指令获取所述待解析指令对应的所述目标指令key值。所述根据所述待解析指令获取所述待解析指令对应的所述目标指令key值是通过哈希映射方法获取,具体地,在接收到所述待解析指令后,将所述待解析指令转换为计算机可识别语言后进行哈希映射获取对应的目标指令key值,例如,若所述待解析指令为语音指令,那么,可以将所述待解析指令转换为文本,再进行哈希映射得到相应的key值,若所述待解析指令为图像指令时,可以对图像进行文本提取再进行哈希映射或者对图像进行编码后再进行哈希映射得到相应的key值。
所述根据所述待解析指令获取所述待解析指令对应的目标指令key值可以是根据预设算法来实现,所述预设算法可以是通过一个链接与各个终端接口,终端每次接收到所述待解析指令后,都向所述链接请求返回对应的所述目标指令key值,或者所述分布式网络中可以设置服务器,由服务器执行所述预设算法,所述预设算法也可以是设置在所述分布式网络中的一个终端的本地,每个终端获取到所述待解析指令后,都发往设置有所述预设算法的终端,获取对应的所述目标指令key值,保证对于多个终端接收到的不同指令,都具备唯一性的key值。
具体地,在所述分布式网络中,每个终端都对应有一个终端key值,所述终端key值用于标识终端的唯一性,也就是说,在所述分布式网络中,各个终端的终端key值不同,具体地,终端key值可以是在终端出厂时由厂商设置,终端key值也可以是根据哈希映射的方式获取,例如,根据终端的序列号进行哈希映射后得到对应的终端key值。
终端key值和指令key值属于同一值域,也就是说,终端key值的取值范围和指令key值的取值范围相同,例如终端key值和指令key值都属于[1,1024]等。不同的终端k具有不同的终端key值,不同的指令具有不同的指令key值,终端key值和指令key值可以相等。
发明人发现,在终端的实际使用过程中,用户实际常用的指令是有限的,例如“开机”、“调大声音”等指令,这些常用的指令的解析占用了服务器的大部分负载,因此,在本实施例中,对于服务器已经解析过的指令,将解析结果存储在所述分布式网络的终端中,后期其他的终端再次接收到同样的指令,则可以从存储有该指令对应的解析结果的终端中调用解析结果,而不需要服务器进行再次解析,而为了实现多个指令的解析结果在所述分布式网络中的存储以及便于查找,对于所述分布式网络中的每个指令key值对应的解析结果,当指令key值大于所述分布式网络中最大的终端key值时,是存储在所述分布式网络中最小的终端key值对应的终端上,当指令key值不大于所述分布式网络中最大的终端key值时,是存储在所述分布式网络中大于或等于所述指令key值的最小终端key值对应的终端上,例如,如图2所示,当前所述分布式网络中存在的终端key值包括K4、K8、K14、……K56,那么,key值为K67的指令的解析结果存储在K4终端上,key值为K22的指令的解析结果存储在K24终端上。在本实施例中,在获取所述目标指令key值后,需要查找所述目标终端,若所述目标终端中没有所述目标指令key值对应的解析结果,则从服务器中获取所述目标指令key值对应的解析结果,将所述解析记过存储到所述目标终端中,若所述目标终端中存储有所述目标指令key值对应的解析结果,则从所述目标终端处获取所述解析结果。从前面的说明不难看出,当所述目标指令key值大于所述分布式网络中最大的终端key值时,所述目标终端为所述分布式网络中最小的终端key值对应的终端,当所述目标指令key值不大于所述分布式网络中最大的终端key值时,所述目标终端为所述分布式网络中大于或等于所述目标指令key值的最小的终端key值对应的终端。如图3所示,所述根据所述待解析指令对应的目标指令key值确定目标终端包括:
S110、获取自身终端key值,根据所述自身终端key值确定对应的数据表。
所述分布式网络中的每一个终端对应有一个数据表,所述数据表中包括N个第一终端key值,N为正整数,例如,N可以为5、6等。所述根据所述自身终端key值确定对应的数据表包括:
根据预设公式确定各个中间终端key值,所述各个中间终端key值分别用于确定所述数据表中的各个第一终端key值;
分别根据所述各个中间终端key值确定所述数据表中的各个第一终端key值。
具体地,所述自身终端key值为终端自身的key值,即,执行所述所述待解析指令对应的目标指令key值确定目标终端步骤的终端的key值,所述数据表中的各个第一终端key值是用于查找所述目标终端的,所述预设公式为:An=(A0+Xn-1)modM,其中,mod表示取余运算,An为第n个中间终端key值,A0为所述自身终端key值,X为预设参数,X为大于1的自然数,例如,X可以取2、3等,M为所述分布式网络中的终端key值的值域中的最大值。例如,假设所述分布式网络中的终端key值的值域为[1,64],则值域中的最大值为64,当自身终端key值为36时,根据预设公式可以得到各个中间终端key值分别为37、38、40、52、4。
不难看出,在X为大于1的自然数的限定下,根据所述预设公式计算得到的各个中间终端key值的间隔不相等,而是越来越大,例如X取2时,第一个中间key值和第二个中间key值的间隔为1,第二个中间key值和第三个中间key值的间隔为2,第三个中间key值和第四个中间key值的间隔为4等。
在另一种可能的实现方式中,也可以设置所述各个中间终端key值的间隔相等,这样,所述预设公式可以为:Kn=(A+n*Y)modM,其中,mod表示取余运算,Kn为第n个中间终端key值,A为所述自身终端key值,Y为预设参数。这样,所述各个中间终端key值之间的间隔均为Y。
每个第一终端key值之间的间隔会影响根据所述数据表查找所述目标终端的查找效率(后文将会详述),而各个第一终端key值之间的间隔与所述各个中间终端key值之间的间隔有关,所述各个中间终端key值之间的间隔可以是根据所述指令解析网络中的终端key值的值域确定,根据不同的值域,可以设置不同的间隔,以实现快速定位所述目标终端。
所述分别根据所述各个中间终端key值确定所述数据表中的各个第一终端key值包括:
对于所述各个中间终端key值中的第n个中间终端key值,当所述分布式网络中存在所述第n个中间终端key值时,将所述第n个中间终端key值作为所述数据表中的第n个第一终端key值;
当所述分布式网络中不存在所述第n个中间终端key值时,若所述第n个中间终端key值满足大于所述分布式网络中任一个终端key值的条件,则获取所述分布式网络中的第二终端key值作为所述数据表中的第n个第一终端key值,若所述第n个中间终端key值不满足大于所述分布式网络中任一个终端key值的条件,则获取所述分布式网络中的第三终端key值作为所述数据表中的第n个第一终端key值。
n为正整数,所述第二终端key值大于所述分布式网络中的其他任一个终端key值,所述第三终端key值属于第一集合,且所述第三终端key值小于所述第一集合中的其他任一个终端key值,所述第一集合为所述分布式网络中大于所述第n个中间终端key值的终端key值的集合,如图2所示,假设所述分布式网络中的终端key值的值域为[1,64],则值域中的最大值为64,根据所述预设公式An=(A0+Xn-1)modM,取X为2,N为6,那么当自身终端key值为K47时,对应的各个中间终端key值分别为K48、K49、K51、K55、K63、K15,而所述指令解析网络中存在的终端key值有K4、K8、K14、K24、K36、K40、K47、K56,那么K4终端对应的数据表中的各个第一终端key值应分别为K56、K56、K56、K56、K4、K24。
在确定了所述数据表中的各个第一终端key值后,就确定了所述数据表。
值得说明的是,所述获取自身终端key值,根据所述自身终端key值确定对应的数据表的步骤并不是限于在接收到待解析指令后进行,也并不是每次根据所述目标指令key值确定目标终端时都需要进行,而是可以在接收到待解析指令之前进行,当终端加入到所述分布式网络中,可以执行所述根据所述自身终端key值确定对应的数据表的步骤,以初始化终端对应的数据表,终端在所述分布式网络中可以按照预设的间隔执行所述根据所述自身终端key值确定对应的数据表的步骤以定期地对所述数据表进行更新。
如图3所示,所述根据所述目标指令key值确定目标终端还包括:
S120、根据所述自身终端key值和所述数据表确定所述目标终端。
具体地,所述根据所述自身终端key值和所述数据表确定所述目标终端包括:
S120a、当所述目标指令key值等于所述自身终端key值时,确定自身为所述目标终端;
S120b、当所述目标指令key值大于所述自身终端key值时,若所述自身终端key值大于后继终端的终端key值,则确定所述后继终端为所述目标终端;若所述自身终端key值小于所述后继终端的终端key值,则确定所述目标指令key值是否小于所述后继终端的终端key值,若小于,则确定所述后继终端为所述目标终端,若大于,则将所述目标指令key值发送至第四终端,以使得所述第四终端执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端;
具体地,所述后继终端为所述数据表中第一个第一终端key值对应的终端,如图2所示,K4终端的后继终端为K8,K36终端的后继终端为K40。当所述目标指令key值大于所述自身终端key值时,存在两种情况:所述自身终端key值大于所述后继终端的终端key值、所述自身终端key值小于所述后继终端的终端key值,下面对这两种情况进行分别说明:
若所述自身终端key值大于所述后继终端的终端key值,而后继终端为所述数据表中的第一个第一终端key值,根据前面对所述数据表的说明不难看出,此时终端自身(即执行所述根据所述目标指令key值确定目标终端的步骤的终端)大于所述分布式网络内的其他任一终端key值,即,终端自身为所述分布式网络内终端key值最大的终端,终端自身的后继终端为所述分布式网络内终端key值最小的终端,那么,所述目标指令key值大于所述分布式网络内的任一终端key值,则所述目标终端为所述后继终端。
若所述自身终端key值小于所述后继终端的终端key值,则说明终端自身不是所述分布式网络终端key值最大的终端,即所述目标指令key值不大于所述分布式网络内的最大的终端key值,在这种情况下,若所述目标指令key值小于所述后继终端的终端key值,那么所述后继终端必然为所述分布式网络内大于或等于所述目标指令key值的最小终端key值对应的终端,可以确定所述后继终端为所述目标终端。
此时将所述目标指令key值发送至
当所述目标指令key值小于所述自身终端key值时,确定所述数据表中是否存在小于或等于所述目标指令key值的第一终端key值,若存在,则将所述目标指令key值发送至所述第一终端key值对应的终端,以使得所述第一终端key值对应的终端执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端;若不存在,则将所述目标指令key值发送至所述数据表中第N个第一终端key值对应的终端,以使得所述第N个第一终端key值执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端
当所述目标指令key值小于或等于所述自身终端key值时,将自身作为所述目标终端。
若所述目标指令key值小于或等于所述自身终端key值,那么,所述目标指令key值对应的指令的解析结果必然存储在终端自身上。
当所述目标指令key值大于所述自身终端key值时,将所述目标指令key值发送至第五终端,以使得所述第五终端执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端。
所述第五终端为所述数据表中不大于所述目标指令key值的最大的第一终端key值对应的终端,当所述目标指令key值大于所述自身终端key值时,则将所述目标指令key至发送给所述第五终端,所述第五终端来执行所述目标指令key至确定目标终端的步骤,即,当所述目标指令key值小于或等于所述第五终端的自身终端key值时,则所述第五终端确定自身为所述目标终端,当所述目标指令key值大于所述第五终端的自身终端key值时,则将所述目标指令key值发送给所述第五终端对应的数据表中不大于所述目标指令key至的最大的第一终端key值对应的终端,以此类推,直至确定所述目标终端,如图2所示,当K4终端接收到目标指令key值K55时,K55大于K4,那么在K4对应的数据表中查找到不大于K55的最大的第一终端key值为K36,那么将目标指令key值发送到K36终端,K36终端对应的数据表中不大于K55的最大的第一终端key值为K47,K36终端将所述目标指令key值发送给K47终端,直至最终查找到目标终端K56。不难看出,由于所述各个第一终端key值之间存在间隔,在查找所述目标终端的过程中,会跳过所述分布式网络中的若干个终端,若所述各个第一终端key值之间的间隔过大,那么每次跳过的终端会过多,影响查找效率,若所述各个第一终端key值之间的间隔过小,那么每次跳过的终端会过少,同样影响查找效率。根据不同的值域,可以设置不同的所述预设公式和所述预设公式中的参数,以改变所述各个中间终端key值之间的间隔,进而该表所述各个第一终端key值之间的间隔,以实现快速定位所述目标终端。
进一步地,在本实施例中,设置后继终端和前继终端,具体地,终端在所述分布式网络中的后继终端是对应的数据表中第一个第一终端key值对应的终端,每一个终端是其对应的后继终端的前继终端。若终端的自身终端key值不是所述分布式网络中最小的终端key值,那么其对应的前继终端为所述分布式网络中小于自身终端key值的最大的终端key值对应的终端,若终端的自身终端key值是所述分布式网络中的最小的终端key值,那么终端的前继终端为所述分布式网络中最大的终端key值对应的终端,如图2中的K4终端,其后继终端为K8终端,前继终端为K56终端。当终端确定所述数据表后,可以根据所述数据表确定后继终端,并向后继终端发送信息以使得所述后继终端将所述终端标记为所述后继终端的前继终端。终端可以定期地向后继终端发送查询信息,确定后继终端是否还存在于所述分布式网络中以及后继终端的前继终端是否为自身,当后继终端不存在于所述分布式网络中或者后继终端的前继终端不是自身,则执行所述根据所述自身终端key值确定对应的数据表的步骤以对所述数据表进行更新,并向新的后继终端发送信息,以使得新的后继终端将所述终端记为前继终端。
所述根据所述自身终端key值确定对应的数据表之后还包括:
从后继终端中获取第一指令key值以及所述第一指令key值对应的解析结果并存储。
所述后继终端为所述数据表中第一个第一终端key值对应的终端,所述第一指令key值为所述后继终端中存储的小于所述自身终端key值的指令key值,在本实施例中,如前面所说明的,对于所述分布式网络中存在的指令对应的解析结果,当指令key值大于所述分布式网络中最大的终端key值时,是存储在所述分布式网络中最小的终端key值对应的终端上,当指令key值不大于所述分布式网络中最大的终端key值时,是存储在大于或等于该条指令对应的指令key值的最小的终端key值对应的终端上,因此,在根据所述自身终端key值确定数据表之后,需要将所述后继终端中存储的小于所述自身终端key值的指令key值对应的指令的解析结果转移到自身终端上来,以保证后续能准确查找到所述第一指令key值对应的解析结果。
如图3所示,所述根据所述目标指令key值确定目标终端还包括:
S120、根据所述自身终端key值和所述数据表确定所述目标终端。
具体地,所述根据所述自身终端key值和所述数据表确定所述目标终端包括:
当所述目标指令key值小于或等于所述自身终端key值时,将自身作为所述目标终端。
若所述目标指令key值小于或等于所述自身终端key值,那么,所述目标指令key值对应的指令的解析结果必然存储在终端自身上。
当所述目标指令key值大于所述自身终端key值时,将所述目标指令key值发送至第五终端,以使得所述第五终端执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端。
所述第五终端为所述数据表中不大于所述目标指令key值的最大的第一终端key值对应的终端,当所述目标指令key值大于所述自身终端key值时,则将所述目标指令key至发送给所述第五终端,所述第五终端来执行所述目标指令key至确定目标终端的步骤,即,当所述目标指令key值小于或等于所述第五终端的自身终端key值时,则所述第五终端确定自身为所述目标终端,当所述目标指令key值大于所述第五终端的自身终端key值时,则将所述目标指令key值发送给所述第五终端对应的数据表中不大于所述目标指令key至的最大的第一终端key值对应的终端,以此类推,直至确定所述目标终端,如图2所示,当K4终端接收到目标指令key值K55时,K55大于K4,那么在K4对应的数据表中查找到不大于K55的最大的第一终端key值为K36,那么将目标指令key值发送到K36终端,K36终端对应的数据表中不大于K55的最大的第一终端key值为K47,K36终端将所述目标指令key值发送给K47终端,直至最终查找到目标终端K56。不难看出,由于所述各个第一终端key值之间存在间隔,在查找所述目标终端的过程中,会跳过所述分布式网络中的若干个终端,若所述各个第一终端key值之间的间隔过大,那么每次跳过的终端会过多,影响查找效率,若所述各个第一终端key值之间的间隔过小,那么每次跳过的终端会过少,同样影响查找效率。根据不同的值域,可以设置不同的所述预设公式和所述预设公式中的参数,以改变所述各个中间终端key值之间的间隔,进而该表所述各个第一终端key值之间的间隔,以实现快速定位所述目标终端。
请再次参阅图1,所述指令解析方法还包括:
S200、当所述目标终端存储有所述目标指令key值对应的解析结果时,获取所述目标终端返回的所述解析结果。
在确定所述目标终端后,将所述目标指令key值发送给所述目标终端,所述目标终端在本地查找所述目标指令key值对应的解析结果,若所述目标终端存储有所述目标指令key值对应的解析结果,则所述目标终端将所述解析结果发送给获取到所述待解析指令的终端。
所述指令解析方法还包括:
S300、当所述目标终端中没有存储所述目标指令key值对应的解析结果时,将所述待解析指令发送至服务器,获取所述服务器返回的所述解析结果,并将所述解析结果发送至所述目标终端进行存储。
当所述目标终端中没有存储所述指令key值对应的解析结果时,说明所述待解析语音指令是一条新的指令,所述分布式网络中没有解析并存储过所述待解析指令,那么,将所述待解析指令发送给服务器,所述服务器是用于解析指令的服务器,所述服务器接收到所述待解析指令后,对所述待解析指令进行解析,得到解析结果,并将所述解析结果返回至接收到所述待解析指令的终端从而使得终端可以根据所述解析结果进行相应操作。
在接收到所述服务器返回的所述解析结果之后,将所述解析结果发送到所述目标终端,所述目标终端对所述解析结果进行存储,这样,当所述分布式网络中的终端再次接收到与所述待解析指令相同的指令后,可以在确定到所述目标终端后,从所述目标终端处获取到所述目标指令key值对应的解析结果。
综上所述,本发明提供一种指令解析方法,在所述指令解析方法中,当一个终端获取指令后,在分布式网络中查找存储有该指令的解析结果的目标终端,从目标终端处获取指令解析结果,也就是说,本发明将指令解析结果存储在系统内的各个终端中,当终端接收到指令后,不需要每次都将指令发送给服务器来解析,降低了服务器的负载。
应该理解的是,虽然本发明说明书附图中给出的的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
实施例二
基于上述实施例,本发明还提供了一种终端,其原理框图可以如图4所示。该终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该终端的处理器用于提供计算和控制能力。该终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种指令解析方法。该终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端的温度传感器是预先在终端内部设置,用于检测内部设备的当前运行温度。
本领域技术人员可以理解,图4中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种终端,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时至少可以实现以下步骤:
获取待解析指令,根据所述待解析指令获取所述待解析指令对应的目标指令key值;
根据所述目标指令key值确定目标终端;
当所述目标终端存储有所述目标指令key值对应的解析结果时,获取所述目标终端返回的所述解析结果。
其中,当所述目标指令key值大于分布式网络中最大的终端key值时,所述目标终端为所述分布式网络中最小的终端key值对应的终端,当所述目标指令key值不大于所述分布式网络中最大的终端key值时,所述目标终端为所述分布式网络中大于或等于所述目标指令key值的最小的终端key值对应的终端,所述根据所述目标指令key值确定目标终端包括:
获取自身终端key值,根据所述自身终端key值确定对应的数据表,其中,所述数据表中包括N个第一终端key值,N为正整数;
根据所述自身终端key值和所述数据表确定所述目标终端。
其中,所述根据所述自身终端key值确定对应的数据表包括:
根据预设公式确定各个中间终端key值;
分别根据所述各个中间终端key值确定所述数据表中的各个第一终端key值。
其中,所述分别根据所述各个中间终端key值确定所述数据表中的各个第一终端key值包括:
对于所述各个中间终端key值中的第n个中间终端key值,当所述分布式网络中存在所述第n个中间终端key值时,将所述第n个中间终端key值作为所述数据表中的第n个第一终端key值;
当所述分布式网络中不存在所述第n个中间终端key值时,若所述第n个中间终端key值大于所述分布式网络中最大的终端key值,则获取所述分布式网络中最小的终端key值作为所述数据表中的第n个第一终端key值,若所述第n个中间终端key值小于所述分布式网络中最大的终端key值,则获取所述分布式网络中大于所述中间终端key值的最小的终端key值作为所述数据表中的第n个第一终端key值;
其中,n为正整数。
其中,所述根据所述自身终端key值和所述数据表确定所述目标终端包括:
当所述目标指令key值小于或等于所述自身终端key值时,将自身作为所述目标终端;
当所述目标指令key值大于所述自身终端key值时,将所述目标指令key值发送至第五终端,以使得所述第五终端执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端;
其中,所述第五终端为所述数据表中不大于所述目标指令key值的最大的第一终端key值对应的终端。
其中,所述根据所述自身终端key值确定对应的数据表之后还包括:
从后继终端中获取第一指令key值以及所述第一指令key值对应的解析结果并存储;
其中,所述后继终端为所述数据表中第一个第一终端key值对应的终端,所述第一指令key值为所述后继终端中存储的小于所述自身终端key值的指令key值。
其中,所述根据所述目标指令key值确定目标终端之后还包括:
当所述目标终端中没有存储所述目标指令key值对应的解析结果时,将所述待解析指令发送至服务器,获取所述服务器返回的所述解析结果,并将所述解析结果发送至所述目标终端进行存储。
实施例三
本发明还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一所述的指令解析方法的步骤。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于分布式网络的指令解析方法,其特征在于,所述分布式网络包括多个终端,所述指令解析方法应用于所述分布式网络中的一个终端上,所述指令解析方法包括:
接收待解析指令,根据所述待解析指令对应的目标指令key值确定目标终端;
当所述目标终端存储有所述目标指令key值对应的解析结果时,获取所述解析结果。
2.根据权利要求1所述的基于分布式网络的指令解析方法,其特征在于,所述根据所述待解析指令对应的目标指令key值确定目标终端之前,所述方法还包括:
将所述待解析指令转化为文本;
对所述文本进行哈希映射得到所述目标指令key值。
3.根据权利要求1所述的基于分布式网络的指令解析方法,其特征在于,所述根据所述待解析指令对应的目标指令key值确定目标终端包括:
获取自身终端key值,根据所述自身终端key值确定对应的数据表,其中,所述数据表中包括N个第一终端key值,N为正整数;
根据所述自身终端key值和所述数据表确定所述目标终端。
4.根据权利要求3所述的基于分布式网络的指令解析方法,其特征在于,所述根据所述自身终端key值确定对应的数据表包括:
根据预设公式确定各个中间终端key值,所述各个中间终端key值分别用于确定所述数据表中的各个第一终端key值;
分别根据所述各个中间终端key值确定所述数据表中的各个第一终端key值。
5.根据权利要求4所述的基于分布式网络的指令解析方法,其特征在于,所述分别根据所述各个中间终端key值确定所述数据表中的各个第一终端key值包括:
对于所述各个中间终端key值中的第n个中间终端key值,当所述分布式网络中存在所述第n个中间终端key值时,将所述第n个中间终端key值作为所述数据表中的第n个第一终端key值;
当所述分布式网络中不存在所述第n个中间终端key值时,若所述第n个中间终端key值满足大于所述分布式网络中任一个终端key值的条件,则获取所述分布式网络中的第二终端key值作为所述数据表中的第n个第一终端key值,若所述第n个中间终端key值不满足大于所述分布式网络中任一个终端key值的条件,则获取所述分布式网络中的第三终端key值作为所述数据表中的第n个第一终端key值;其中,n为正整数,所述第二终端key值大于所述分布式网络中的其他任一个终端key值,所述第三终端key值属于第一集合,且所述第三终端key值小于所述第一集合中的其他任一个终端key值,所述第一集合为所述分布式网络中大于所述第n个中间终端key值的终端key值的集合。
6.根据权利要求5所述的基于分布式网络的指令解析方法,其特征在于,所述根据所述自身终端key值和所述数据表确定所述目标终端包括:
当所述目标指令key值等于所述自身终端key值时,确定自身为所述目标终端;
当所述目标指令key值大于所述自身终端key值时,若所述自身终端key值大于后继终端的终端key值,则确定所述后继终端为所述目标终端;若所述自身终端key值小于所述后继终端的终端key值,则确定所述目标指令key值是否小于所述后继终端的终端key值,若小于,则确定所述后继终端为所述目标终端,若大于,则将所述目标指令key值发送至第四终端,以使得所述第四终端执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端;
当所述目标指令key值小于所述自身终端key值时,确定所述数据表中是否存在小于或等于所述目标指令key值的第一终端key值,若存在,则将所述目标指令key值发送至所述第一终端key值对应的终端,以使得所述第一终端key值对应的终端执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端;若不存在,则将所述目标指令key值发送至所述数据表中第N个第一终端key值对应的终端,以使得所述第N个第一终端key值执行所述根据所述目标指令key值确定所述目标终端的步骤,直至确定所述目标终端;
其中,所述后继终端为所述数据表中第一个第一终端key值对应的终端,所述第四终端的终端key值大于第二集合中的其他任一个终端key值,所述第二集合为所述数据表中不大于所述目标指令key值的第一终端key值的集合,第二预设条件为所述目标指令key值大于所述后继终端的终端key值,且所述自身终端key值小于所述后继终端的终端key值。
7.根据权利要求6所述的指令解析方法,其特征在于,所述根据所述自身终端key值和所述数据表确定所述目标终端之前还包括:
从所述后继终端中获取第一指令key值以及所述第一指令key值对应的解析结果并存储;
其中,所述第一指令key值为所述后继终端中存储的小于所述自身终端key值的指令key值。
8.根据权利要求1所述的基于分布式网络的指令解析方法,其特征在于,所述根据所述目标指令key值确定目标终端之后还包括:
当所述目标终端中没有存储所述目标指令key值对应的解析结果时,从服务器中获取所述待解析指令对应的所述解析结果,并将所述解析结果发送至所述目标终端进行存储。
9.一种终端,其特征在于,所述终端包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令,所述处理器适于调用所述存储介质中的指令,以执行实现如权利要求1-8任一项所述的基于分布式网络的指令解析方法的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任一项所述的基于分布式网络的指令解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010655446.3A CN113992700B (zh) | 2020-07-09 | 2020-07-09 | 一种基于分布式网络的指令解析方法、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010655446.3A CN113992700B (zh) | 2020-07-09 | 2020-07-09 | 一种基于分布式网络的指令解析方法、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113992700A CN113992700A (zh) | 2022-01-28 |
CN113992700B true CN113992700B (zh) | 2023-12-26 |
Family
ID=79731238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010655446.3A Active CN113992700B (zh) | 2020-07-09 | 2020-07-09 | 一种基于分布式网络的指令解析方法、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113992700B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000101654A (ja) * | 1991-11-07 | 2000-04-07 | Canon Inc | デ―タ処理装置及び方法 |
CN109359231A (zh) * | 2017-12-29 | 2019-02-19 | 广州Tcl智能家居科技有限公司 | 一种分布式网络爬虫的信息爬取方法、服务器及存储介质 |
CN110309334A (zh) * | 2018-04-20 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 图数据库的查询方法、系统、计算机设备和可读存储介质 |
CN111127870A (zh) * | 2019-12-30 | 2020-05-08 | 深圳小佳科技有限公司 | 一种遥控方法、遥控器、遥控系统及存储介质 |
-
2020
- 2020-07-09 CN CN202010655446.3A patent/CN113992700B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000101654A (ja) * | 1991-11-07 | 2000-04-07 | Canon Inc | デ―タ処理装置及び方法 |
CN109359231A (zh) * | 2017-12-29 | 2019-02-19 | 广州Tcl智能家居科技有限公司 | 一种分布式网络爬虫的信息爬取方法、服务器及存储介质 |
CN110309334A (zh) * | 2018-04-20 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 图数据库的查询方法、系统、计算机设备和可读存储介质 |
CN111127870A (zh) * | 2019-12-30 | 2020-05-08 | 深圳小佳科技有限公司 | 一种遥控方法、遥控器、遥控系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113992700A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
CN108170809B (zh) | 建表脚本生成方法、装置、设备及计算机可读存储介质 | |
WO2019085073A1 (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
US9953639B2 (en) | Voice recognition system and construction method thereof | |
CN110517673B (zh) | 语音识别方法、装置、计算机设备及存储介质 | |
CN109361628B (zh) | 报文组装方法、装置、计算机设备和存储介质 | |
CN111341315B (zh) | 语音控制方法、装置、计算机设备和存储介质 | |
WO2018177205A1 (zh) | 回归测试方法、装置、计算机设备和存储介质 | |
US20160224554A1 (en) | Search methods, servers, and systems | |
US12089143B2 (en) | Network search method and apparatus, device and storage medium | |
WO2020010492A1 (zh) | 数控系统的数据处理方法、计算机设备和存储介质 | |
WO2019148657A1 (zh) | 关联环境测试方法、电子装置及计算机可读存储介质 | |
CN110795172B (zh) | 前台进程控制方法、装置、电子设备以及存储介质 | |
CN110677506B (zh) | 网络访问方法、装置、计算机设备及存储介质 | |
CN113992700B (zh) | 一种基于分布式网络的指令解析方法、终端及存储介质 | |
CN111651067B (zh) | 一种终端控制方法、终端以及存储介质 | |
CN112783866B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN113778581A (zh) | 页面加载方法、电子设备和存储介质 | |
WO2023098593A1 (zh) | 数据处理方法及装置 | |
CN110286873B (zh) | 网页音频播放方法、装置、计算机设备及存储介质 | |
CN108763601B (zh) | 一种在双内核浏览器中自动切换的控制方法及控制装置 | |
CN113132816A (zh) | 一种节目切换方法、终端、系统及存储介质 | |
WO2020019450A1 (zh) | 分程异步加载方法、装置、终端设备及存储介质 | |
CN116650955B (zh) | 显卡切换的控制方法、装置、计算机设备和存储介质 | |
CN114079588B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |