一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

跨进程通信方法、装置、存储介质及电子设备与流程

2022-06-05 18:36:46 来源:中国专利 TAG:


1.本发明涉及通信技术领域,具体涉及一种跨进程通信方法、装置、存储介质及电子设备。


背景技术:

2.目前,在对操作系统的应用层开发过程中,会需要使用不同进程间的通信。比如,需要进程a与进程b之间的通信,则需要开发人员手动定义进程a的相关信息,再手动查找进程b的相关信息。利用进程a的相关信息和进程b的相关信息,定义进程a与进程b的通信方法,从而发起进程a与进程b的通信。随着科学技术的发展,应用设备中的应用数量越来越多,想要实现进程间的通信,每两个进程间通信时计算机需要生成一个消息队列,维护大量消息队列导致投入时间成本过大,降低了多进程间通信的效率,当前技术中的多进程间通信效率不能满足现有需求,因此如何让开发人员和用户使用方便,提高效率,降低设计生产成本是目前亟待解决的问题。


技术实现要素:

3.本技术实施例提供了一种跨进程通信方法、装置、存储介质及电子设备,可提高多进程间通信效率,降低开发成本。所述技术方案如下:
4.第一方面,本技术实施例提供了一种跨进程通信方法,包括:
5.接收来自第一进程的第一事件消息;
6.识别所述第一事件消息的消息类型;
7.在预先存储的注册表中查询是否存在与所述消息类型关联的第二进程;
8.若存在,判断所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型是否相同;
9.若为否,将所述第二进程的消息类型覆盖所述第一事件消息的消息类型后,生成第二事件消息;
10.将所述第二事件消息发送给所述第二进程。
11.第二方面,本技术实施例提供了一种跨进程查询方法,包括:
12.生成查询请求消息;其中,所述查询请求携带目标进程的消息队列标识和第一查询标识;
13.在注册表中注册监听事件类型为第一事件类型;
14.将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程;
15.接收所述目标进程通过所述跨进程通讯中心进程返回的查询响应消息;其中,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型;
16.解析所述查询响应消息得到查询结果,将所述查询结果存放至对应的消息队列文件中。
17.第三方面,本技术实施例提供了另一种跨进程查询方法,包括:
18.接收来自源进程通过跨进程通讯中心进程发送的查询请求消息;其中,所述查询请求携带目标进程的消息队列标识和第一查询标识;
19.根据所述查询请求消息执行查询得到查询结果;
20.基于所述查询结果生成查询响应消息;其中,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型;
21.将所述查询响应消息通过所述跨进程通讯中心进程发送给所述源进程。
22.第四方面,本技术实施例提供了一种跨进程通信装置,所述装置包括:
23.接收模块,用于接收来自第一进程的第一事件消息;
24.识别模块,用于识别所述第一事件消息的消息类型;
25.查询模块,用于在预先存储的注册表中查询是否存在与所述消息类型关联的第二进程;
26.判断模块,用于若存在,判断所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型是否相同;
27.生成模块,用于若为否,将所述第二进程的消息类型覆盖所述第一事件消息的消息类型后,生成第二事件消息;
28.发送模块,用于将所述第二事件消息发送给所述第二进程。
29.第五方面,本技术实施例提供了一种跨进程查询装置,所述装置包括:
30.生成模块,用于生成查询请求消息;其中,所述查询请求携带目标进程的消息队列标识和第一查询标识;
31.注册模块,用于在注册表中注册监听事件类型为第一事件类型;
32.发送模块,用于将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程;
33.接收模块,用于接收所述目标进程通过所述跨进程通讯中心进程返回的查询响应消息;其中,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型;
34.解析模块,用于解析所述查询响应消息得到查询结果,将所述查询结果存放至对应的消息队列文件中。
35.第六方面,本技术实施例提供了一种跨进程查询装置,所述装置包括:
36.接收模块,用于接收来自源进程通过跨进程通讯中心进程发送的查询请求消息;其中,所述查询请求携带目标进程的消息队列标识和第一查询标识;
37.查询模块,用于根据所述查询请求消息执行查询得到查询结果;
38.生成模块,用于基于所述查询结果生成查询响应消息;其中,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型;
39.发送模块,用于将所述查询响应消息通过所述跨进程通讯中心进程发送给所述源进程。
40.第七方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
41.第八方面,本技术实施例提供了一种电子设备,包括:存储器和处理器;其中,所述存储器存储有计算机程序,所述计算机程序适用于由所述处理器加载并执行上述的方法步
骤。
42.本技术一些实施例提供的技术方案带来的有益效果至少包括:
43.上述跨进程通信方法、装置、存储介质及电子设备工作时,跨进程通讯中心进程接收来自第一进程的第一事件消息,识别所述第一事件消息的消息类型,在预先存储的注册表中查询是否存在与所述消息类型关联的第二进程,若存在,判断所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型是否相同,若为否,将所述第二进程的消息类型覆盖所述第一事件消息的消息类型后,生成第二事件消息,将所述第二事件消息发送给所述第二进程。跨进程通信时,通过启动跨进程通讯中心进程作为进程间通信的中间载体,可提高多进程间通信效率,降低开发成本。
附图说明
44.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1是本技术实施例提供的一种跨进程通信系统的架构示意图;
46.图2是本技术实施例提供的一种跨进程通信方法的流程示意图;
47.图3是本技术实施例提供的一种跨进程通信方法的另一流程示意图;
48.图4是本技术实施例提供的一种装置的第一结构示意图;
49.图5是本技术实施例提供的一种跨进程查询方法的第一流程示意图;
50.图6是本技术实施例提供的一种装置的第二结构示意图;
51.图7是本技术实施例提供的一种跨进程查询方法的第二流程示意图;
52.图8是本技术实施例提供的一种装置的第三结构示意图;
53.图9是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
54.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例方式作进一步地详细描述。
55.下面的描述设计附图时,除非另有表示,不同附图中的相同数字表示相同的或相似的要素。以下示例性实施例中描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
56.在本技术的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本技术中的具体含义。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
57.为了解决上述提到的随着应用设备中的应用数量越来越多,想要实现进程间的通信,需要开发人员大量的手动操作来维护,投入时间成本过大,降低了多进程间通信的效
率,导致多进程间通信效率不能满足现有需求的问题,特提出了一种跨进程通信方法,本技术实施例方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系且安装有摄像头或可旋转摄像头的计算机系统上。该计算机系统可以是智能手机、笔记本电脑、平板电脑等设备的计算机系统。
58.在下述方法实施例中,为了便于说明,仅以各步骤的执行主体为可运行跨进程通讯中心进程的计算机进行介绍说明。
59.下面将结合附图2至图3,对本技术实施例提供的跨进程通信方法进行详细介绍。
60.请参见图1,为本技术实施例提供的一种跨进程通信系统的架构示意图。如图1所述,所述跨进程通信系统中主要包括第一进程、跨进程通讯中心进程和第二进程,进程是一系列按照特定顺序组织的计算机数据和指令的集合,可以接收和发送数据。跨进程通讯中心进程是自定义的一个具有独立功能的程序关于某个数据集合的一次运行活动(即进程),不同应用程序间依赖所述跨进程通讯中心进程进行通信,例如:第一进程将事件消息发送到跨进程通讯中心进程,跨进程通讯中心进程再将所述事件消息发送到第二进程,就可以事件跨进程通讯,其中,所述第一进程和第二进程可在同一操作系统中,也可在不同操作系统中。
61.请参见图2,为本技术实施例提供了一种跨进程通信方法的流程示意图。所述方法可以包括以下步骤:
62.s201、接收来自第一进程的第一事件消息。
63.一般的,第一进程是指进程间通信的事件发起进程,例如:界面显示进程,第一事件消息格式为对象简谱json格式。跨进程通讯中心进程接收来自第一进程的第一事件消息之前,跨进程通讯中心进程需要先完成与第一进程之间的注册:在跨进程通讯中心进程完成启动后,创建消息队列文件以及为所述消息队列文件分配消息队列标识,设置所述消息队列文件监听的消息类型为全消息类型,其中,所述全消息类型表示所述消息队列文件用于保存所有发送给所述跨进程通讯中心进程的事件消息,在所述跨进程通讯中心进程监听到的事件消息为预设的消息类型时,解析所述监听到的事件消息得到对应的进程名称和事件类型,根据所述进程名称获取目标消息队列标识,其中,所述目标消息队列标识为发送所述监听到的事件消息的进程对应的消息队列的标识,将注册信息记录到注册表完成注册,其中,所述注册信息包括所述进程名称、所述事件类型和所述目标消息队列标识。
64.在一个实施例中,跨进程通讯中心完成注册之后,接收来自源进程的查询请求消息,其中,所述查询请求携带目标进程的消息队列标识和第一查询标识,所述源进程在所述注册表中注册的监听事件类型为第一事件类型,将所述查询请求消息发送给所述目标进程,接收来自所述目标进程的查询响应消息,其中,所述查询响应消息携带所述第一查询标识和所述第一事件类型,将所述查询响应消息发送给所述源进程。
65.s202、识别所述第一事件消息的消息类型。
66.一般的,跨进程通讯中心进程接收来自第一进程的第一事件消息之后,解析所述第一事件消息结构体,获取消息头,确定消息类型,例如:ipc_center_registor_mq消息类型等。
67.s203、在预先存储的注册表中查询是否存在与所述消息类型关联的第二进程。
68.一般的,注册表是指操作系统中的一个重要的数据库,用于存储系统和应用程序
的设置信息,跨进程通讯中心进程在实施上述步骤,完成了注册环节时,将注册信息记录在了注册表中,所以此时注册表中已经记录了相关信息,跨进程通讯中心进程遍历注册表查询是否存在与所述消息类型关联的第二进程,例如:第一事件消息的消息类型为按键点击事件,则查询注册表中是否存在所述按键点击事件,若有,在确定与所述按键点击事件关联的第二进程,例如:网络传输管理进程。
69.s204、若存在,判断所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型是否相同。
70.一般的,注册表中记录的消息类型可能是各个进程监听的各种事件消息的消息类型的组合,跨进程通讯中心进程执行一次消息监听逻辑时识别所述第一事件消息的消息类型只包含其中一种消息类型。因此,跨进程通讯中心进程在预先存储的注册表中查询存在与所述消息类型关联的第二进程之后,还需判断所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型是否相同,例如:解析第一事件消息得到的数据格式,进程名称:消息类型为remote进程:1024,其中1024是指按键点击消息类型,注册表中存储的数据格式,进程名称:消息类型为远程控制remote进程:1025,其中,这里消息类型是用数字来表示,范围为1~1024,1025表示1024的按键点击消息类型和1的实时消息传输(real time messaging protocol,rtmp)消息类型。
71.s205、若为否,将所述第二进程的消息类型覆盖所述第一事件消息的消息类型后,生成第二事件消息。
72.一般的,跨进程通讯中心进程确定所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型不相同时,将所述第二进程的消息类型覆盖所述第一事件消息的消息类型后,生成第二事件消息,例如:拷贝所述第一事件消息生成副本消息,将注册表中记录的进程名称:消息类型为remote进程:1025覆盖所述副本消息中的进程名称:消息类型为remote进程:1024,则所述副本消息中的为进程名称:消息类型为remote进程:1025,将所述副本消息进行格式转换生成第二事件消息。
73.s206、将所述第二事件消息发送给所述第二进程。
74.一般的,跨进程通讯中心进程在所述注册表中获取所述第二进程的消息队列标识,将所述第二事件消息发送给所述第二进程的消息队列标识所指示的消息队列。在一个实施例中在所述第二进程的消息类型和所述第一事件消息的消息类型相同时,跨进程通讯中心进程将所述第一事件消息发送给所述第二进程。
75.由上述内容可知,跨进程通讯中心进程接收来自第一进程的第一事件消息,识别所述第一事件消息的消息类型,在预先存储的注册表中查询是否存在与所述消息类型关联的第二进程,若存在,判断所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型是否相同,若为否,将所述第二进程的消息类型覆盖所述第一事件消息的消息类型后,生成第二事件消息,将所述第二事件消息发送给所述第二进程。跨进程通信时,通过启动跨进程通讯中心进程作为进程间通信的中间载体,可提高多进程间通信效率,降低开发成本。
76.请参见图3,为本技术实施例提供了一种跨进程通信方法的另一流程示意图。该跨进程通信方法可以包括以下步骤:
77.s301、在跨进程通讯中心进程完成启动后,创建消息队列文件以及为所述消息队
列文件分配消息队列标识。
78.一般的,消息队列文件是基于高可用分布式集群技术的云正式商用的专业消息中间件文件,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。在跨进程通讯中心进程每一次完成启动后,为防止上一次的消息队列文件没被删除照常运行时出错,跨进程通讯中心进程需要删除之前的消息队列文件,然后创建消息队列文件以及为所述消息队列文件分配消息队列标识,例如:消息队列文件名称为/tmp/mq_ipc_center,消息队列标识为32768。
79.s302、设置所述消息队列文件监听的消息类型为全消息类型。
80.一般的,所述全消息类型表示所述消息队列文件用于保存所有发送给所述跨进程通讯中心进程的事件消息,跨进程通讯中心进程创建消息队列文件以及为所述消息队列文件分配消息队列标识之后,需要设置所述消息队列文件监听的消息类型为全消息类型,例如:将监听的消息类型设置msg_type为0,就能接收操作系统发送给跨进程通讯中心进程的全部消息类型。
81.s303、在所述跨进程通讯中心进程监听到的事件消息为预设的消息类型时,解析所述监听到的事件消息得到对应的进程名称和事件类型。
82.一般的,跨进程通讯中心进程监听到事件消息后,首先需要判断所述事件消息的消息类型,例如:解析所述事件消息,获取消息头,确定消息类型,在所述消息类型为ipc_center_registor_mq时,确定为预设的消息类型,然后,解析所述监听到的事件消息得到对应的进程名称和事件类型,例如:得到remote:1025,则确定进程名称为远程控制remote进程,事件类型为1024的按键点击消息类型和1的实时消息传输rtmp消息类型。
83.s304、根据所述进程名称获取目标消息队列标识,将注册信息记录到注册表完成注册。
84.一般的,所述目标消息队列标识为发送所述监听到的事件消息的进程对应的消息队列的标识,所述注册信息包括所述进程名称、所述事件类型和所述目标消息队列标识。跨进程通讯中心进程确定所述进程名称,对所述进程名称和预设关键词进行拼接得到目标消息队列文件名称,基于所述目标消息队列文件名称获取目标消息队列标识,例如:确定进程名称为remote,设置所述预设关键词为/tmp,则可以得到对应的消息队列文件名称为remote/tmp,可以通过该消息队列文件名称获取对应的目标消息队列标识52234。
85.s305、接收来自源进程的查询请求消息。
86.一般的,所述查询请求携带目标进程的消息队列标识和第一查询标识,所述源进程在所述注册表中注册的监听事件类型为第一事件类型,跨进程通讯中心进程接收来自源进程的json格式的查询请求消息。
87.s306、将所述查询请求消息发送给所述目标进程。
88.一般的,跨进程通讯中心进程解析所述查询请求消息确定目标进程的消息队列标识,将所述查询请求消息发送给所述目标进程的消息队列标识对应的所述目标进程的消息队列文件,按消息队列格式的规定入队。
89.s307、接收来自所述目标进程的查询响应消息。
90.一般的,所述查询响应消息携带所述第一查询标识和所述第一事件类型,跨进程通讯中心进程将所述查询请求消息发送给所述目标进程后,等待查询时长,然后接收来自
所述目标进程的查询响应消息。
91.s308、将所述查询响应消息发送给所述源进程。
92.一般的,跨进程通讯中心进程解析所述查询请求消息确定源进程的消息队列标识,将所述查询响应消息发送给所述源进程的消息队列标识对应的所述目标进程的消息队列文件,,所述查询响应消息基于先进先出(first input first output,fifo)策略入队。
93.本技术实施例的方案在执行时,跨进程通讯中心在跨进程通讯中心进程完成启动后,创建消息队列文件以及为所述消息队列文件分配消息队列标识,设置所述消息队列文件监听的消息类型为全消息类型,在所述跨进程通讯中心进程监听到的事件消息为预设的消息类型时,解析所述监听到的事件消息得到对应的进程名称和事件类型,根据所述进程名称获取目标消息队列标识,将注册信息记录到注册表完成注册,接收来自源进程的查询请求消息,将所述查询请求消息发送给所述目标进程,接收来自所述目标进程的查询响应消息。跨进程通信时,通过启动跨进程通讯中心进程作为进程间通信的中间载体,可提高多进程间通信效率,降低开发成本。
94.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
95.请参见图4,其示出了本技术一个示例性实施例提供的跨进程通信装置的结构示意图,以下简称通信装置4。通信装置4可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。包括:
96.接收模块401,用于接收来自第一进程的第一事件消息;
97.识别模块402,用于识别所述第一事件消息的消息类型;
98.查询模块403,用于在预先存储的注册表中查询是否存在与所述消息类型关联的第二进程;
99.判断模块404,用于若存在,判断所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型是否相同;
100.生成模块405,用于若为否,将所述第二进程的消息类型覆盖所述第一事件消息的消息类型后,生成第二事件消息;
101.发送模块406,用于将所述第二事件消息发送给所述第二进程。
102.可选地,所述接收模块401,还包括:
103.注册单元,用于在跨进程通讯中心进程完成启动后,创建消息队列文件以及为所述消息队列文件分配消息队列标识;设置所述消息队列文件监听的消息类型为全消息类型;其中,所述全消息类型表示所述消息队列文件用于保存所有发送给所述跨进程通讯中心进程的事件消息;在所述跨进程通讯中心进程监听到的事件消息为预设的消息类型时,解析所述监听到的事件消息得到对应的进程名称和事件类型;根据所述进程名称获取目标消息队列标识;其中,所述目标消息队列标识为发送所述监听到的事件消息的进程对应的消息队列的标识;将注册信息记录到注册表完成注册;其中,所述注册信息包括所述进程名称、所述事件类型和所述目标消息队列标识。
104.拼接单元,用于确定所述进程名称;对所述进程名称和预设关键词进行拼接得到目标消息队列文件名称;基于所述目标消息队列文件名称获取目标消息队列标识。
105.查询单元,用于接收来自源进程的查询请求消息;其中,所述查询请求携带目标进
程的消息队列标识和第一查询标识,所述源进程在所述注册表中注册的监听事件类型为第一事件类型;将所述查询请求消息发送给所述目标进程;接收来自所述目标进程的查询响应消息;其中,所述查询响应消息携带所述第一查询标识和所述第一事件类型;将所述查询响应消息发送给所述源进程。
106.可选地,所述发送模块406,还包括:
107.传输单元,用于在所述第二进程的消息类型和所述第一事件消息的消息类型相同时,将所述第一事件消息发送给所述第二进程;在所述注册表中获取所述第二进程的消息队列标识;将所述第二事件消息发送给所述第二进程的消息队列标识所指示的消息队列。
108.本技术实施例和图2至图3的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图2至图3的方法实施例的描述,此处不再赘述。
109.所述装置4可以为实现相关功能的现场可编程门阵列(field-programmable gate array,fpga),专用集成芯片,系统芯片(system on chip,soc),中央处理器(central processor unit,cpu),网络处理器(network processor,np),数字信号处理电路,微控制器(micro controller unit,mcu),还可以采用可编程控制器(programmable logic device,pld)或其他集成芯片。
110.本技术实施例的方案在执行时,跨进程通讯中心在跨进程通讯中心进程完成启动后,创建消息队列文件以及为所述消息队列文件分配消息队列标识,设置所述消息队列文件监听的消息类型为全消息类型,在所述跨进程通讯中心进程监听到的事件消息为预设的消息类型时,解析所述监听到的事件消息得到对应的进程名称和事件类型,根据所述进程名称获取目标消息队列标识,将注册信息记录到注册表完成注册,接收来自源进程的查询请求消息,将所述查询请求消息发送给所述目标进程,接收来自所述目标进程的查询响应消息。跨进程通信时,通过启动跨进程通讯中心进程作为进程间通信的中间载体,可提高多进程间通信效率,降低开发成本。
111.在下述方法实施例中,为了便于说明,仅以各步骤的执行主体为可运行源进程的计算机进行介绍说明。
112.下面将结合附图5,对本技术实施例提供的跨进程查询方法进行详细介绍。
113.请参见图5,为本技术实施例提供了一种跨进程查询方法的第一流程示意图。所述方法可以包括以下步骤:
114.s501、生成查询请求消息。
115.一般的,源进程是指进程间通信的事件发起进程,首先源进程接收跨进程通信消息指令,根据所述消息指令生成查询请求消息,其中,所述查询请求携带目标进程的消息队列标识和第一查询标识,例如:消息队列标识为32768,第一查询标识为1001253。例如:源进程为界面显示进程,查询请求消息为实时流量消耗查询,用来在显示界面进行显示。
116.s502、在注册表中注册监听事件类型为第一事件类型。
117.一般的,源进程创建消息队列文件以及为所述消息队列文件分配消息队列标识,设置所述消息队列文件监听的消息类型为第一事件类型,例如:回调消息类型等,确定注册信息,将注册信息记录到注册表完成注册,其中,将所述注册信息使用map数据格式注册。
118.s503、将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程。
119.一般的,源进程将所述查询请求消息转换成json格式后,所述查询请求消息通过
跨进程通讯中心进程发送给所述目标进程,目标检测是指进程间通信的事件响应进程,例如:目标检测为网络传输管理进程,用于检测控制实时网络传输数据量。在一个实施例中,源进程识别所述查询请求消息的查询方式,在所述查询方式为同步查询时,调用同步查询接口,其中,所述同步查询接口的参数提供了消息类型、查询条件和查询完成后运行的函数地址,例如:流量消耗查询、卡号和回调函数地址等,然后对所述源进程设置事件锁,其中,所述事件锁设置超时时长,通过所述同步查询接口将所述查询请求通过跨进程通讯中心进程发送给所述目标进程,其中,所述接收来自所述目标进程的查询响应消息,包括:解析所述查询响应消息确定所述第一查询标识,在所述注册表中查询是否存在与所述第一查询标识关联的所述第一事件类型,若不存在,则丢弃所述查询响应消息,则注册表中确定回调地址,删除回调注册记录接收异步查询,若为是,在查询时长未超过所述超时时长时,解锁所述事件锁,例如:将所述查询响应消息封装成预设的协议结构体调用到所述回调函数中,源进程的后续逻辑可以直接使用回调函数地址下的数据,完成后续逻辑处理,若超时,则返回超时失败指令。
120.在一个实施例中,源进程识别所述查询请求消息的查询方式,在所述查询方式为异步查询时,调用异步查询接口,其中,所述异步查询接口的参数提供了消息类型、查询条件和查询完成后运行的函数地址,例如:流量消耗查询、卡号和回调函数地址等,将所述第一查询标识记录在所述注册表中,通过所述异步查询接口将所述查询请求通过跨进程通讯中心进程发送给所述目标进程。
121.s504、接收所述目标进程通过所述跨进程通讯中心进程返回的查询响应消息。
122.一般的,源进程将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程,等待查询时间后会接收所述目标进程通过所述跨进程通讯中心进程返回的查询响应消息,其中,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型。
123.s505、解析所述查询响应消息得到查询结果,将所述查询结果存放至对应的消息队列文件中。
124.一般的,源进程接收所述目标进程通过所述跨进程通讯中心进程返回的查询响应消息之后,解析所述查询响应消息得到查询结果,将所述查询结果存放至对应的消息队列文件中,将所述查询结果存放至对应的消息队列文件中时需要满足队列格式写入读取规则。例如:在同步查询时,源进程将所述查询响应消息封装成预设的协议结构体调用到所述回调函数中,执行回调函数,关闭等待页面,完成消耗流量数据展示。
125.由上述内容可知,源进程生成查询请求消息,在注册表中注册监听事件类型为第一事件类型,将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程,接收所述目标进程通过所述跨进程通讯中心进程返回的查询响应消息,解析所述查询响应消息得到查询结果,将所述查询结果存放至对应的消息队列文件中。跨进程查询时,源进程通过跨进程通讯中心进程将查询请求消息发送给目标进程,可提高多进程间通信效率,降低开发成本。
126.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
127.请参见图6,其示出了本技术一个示例性实施例提供的跨进程查询装置的第二结
构示意图,以下简称查询装置6。查询装置6可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。包括:
128.生成模块601,用于生成查询请求消息;其中,所述查询请求携带目标进程的消息队列标识和第一查询标识;
129.注册模块602,用于在注册表中注册监听事件类型为第一事件类型;
130.发送模块603,用于将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程;
131.接收模块604,用于接收所述目标进程通过所述跨进程通讯中心进程返回的查询响应消息;其中,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型;
132.解析模块605,用于解析所述查询响应消息得到查询结果,将所述查询结果存放至对应的消息队列文件中。
133.可选地,所述发送模块603,还包括:
134.调用单元,用于识别所述查询请求消息的查询方式;在所述查询方式为同步查询时,调用同步查询接口;对所述源进程设置事件锁;其中,所述事件锁设置超时时长;通过所述同步查询接口将所述查询请求通过跨进程通讯中心进程发送给所述目标进程;其中,所述接收来自所述目标进程的查询响应消息,包括:解析所述查询响应消息确定所述第一查询标识;在所述注册表中查询是否存在与所述第一查询标识关联的所述第一事件类型;若为是,在查询时长未超过所述超时时长时,解锁所述事件锁。
135.本技术实施例和图5的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图5的方法实施例的描述,此处不再赘述。
136.所述装置6可以为实现相关功能的现场可编程门阵列(field-programmable gate array,fpga),专用集成芯片,系统芯片(system on chip,soc),中央处理器(central processor unit,cpu),网络处理器(network processor,np),数字信号处理电路,微控制器(micro controller unit,mcu),还可以采用可编程控制器(programmable logic device,pld)或其他集成芯片。
137.本技术实施例的方案在执行时,源进程生成查询请求消息,在注册表中注册监听事件类型为第一事件类型,将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程,接收所述目标进程通过所述跨进程通讯中心进程返回的查询响应消息,解析所述查询响应消息得到查询结果,将所述查询结果存放至对应的消息队列文件中。跨进程查询时,源进程通过跨进程通讯中心进程将查询请求消息发送给目标进程,可提高多进程间通信效率,降低开发成本。
138.在下述方法实施例中,为了便于说明,仅以各步骤的执行主体为可运行目标进程的计算机进行介绍说明。
139.下面将结合附图7,对本技术实施例提供的跨进程查询方法进行详细介绍。
140.请参见图7,为本技术实施例提供了一种跨进程查询方法的第二流程示意图。所述方法可以包括以下步骤:
141.s701、接收来自源进程通过跨进程通讯中心进程发送的查询请求消息。
142.一般的,目标检测是指进程间通信的事件响应进程,例如:目标检测为网络传输管
理进程等,目标进程接收来自源进程通过跨进程通讯中心进程发送的查询请求消息,例如:源进程为界面显示进程,查询请求消息为实时流量消耗查询,目标进程为网络传输管理进程。其中,所述查询请求携带目标进程的消息队列标识和第一查询标识。
143.s702、根据所述查询请求消息执行查询得到查询结果。
144.一般的,目标进程接收来自源进程通过跨进程通讯中心进程发送的查询请求消息之后,解析所述查询请求消息,确定查询指令,基于所述查询指令执行查询得到查询结果。
145.s703、基于所述查询结果生成查询响应消息。
146.一般的,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型。例如:目标进程得到查询结果后,将所述查询结果设置成回调消息类型,并将该查询结果的消息标识设置为第一查询标识1001253。
147.s704、将所述查询响应消息通过所述跨进程通讯中心进程发送给所述源进程。
148.一般的,目标进程基于所述查询结果生成查询响应消息后,将所述查询响应消息转换为json格式,将所述查询响应消息通过所述跨进程通讯中心进程发送给所述源进程,例如:目标进程为网络传输管理进程将实时流量消耗查询结果通过所述跨进程通讯中心进程发送给源进程界面显示进程,界面显示进程用于在界面上显示实时流量消耗情况。
149.由上述内容可知,目标进程接收来自源进程通过跨进程通讯中心进程发送的查询请求消息,根据所述查询请求消息执行查询得到查询结果,基于所述查询结果生成查询响应消息,将所述查询响应消息通过所述跨进程通讯中心进程发送给所述源进程。跨进程查询时,目标进程通过跨进程通讯中心进程接收来自源进程的查询请求消息,可提高多进程间通信效率,降低开发成本。
150.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
151.请参见图8,其示出了本技术一个示例性实施例提供的跨进程查询装置的第三结构示意图,以下简称查询装置8。查询装置8可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。包括:
152.接收模块801,用于接收来自源进程通过跨进程通讯中心进程发送的查询请求消息;其中,所述查询请求携带目标进程的消息队列标识和第一查询标识;
153.查询模块802,用于根据所述查询请求消息执行查询得到查询结果;
154.生成模块803,用于基于所述查询结果生成查询响应消息;其中,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型;
155.发送模块804,用于将所述查询响应消息通过所述跨进程通讯中心进程发送给所述源进程。
156.本技术实施例和图7的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图7的方法实施例的描述,此处不再赘述。
157.所述装置8可以为实现相关功能的现场可编程门阵列(field-programmable gate array,fpga),专用集成芯片,系统芯片(system on chip,soc),中央处理器(central processor unit,cpu),网络处理器(network processor,np),数字信号处理电路,微控制器(micro controller unit,mcu),还可以采用可编程控制器(programmable logic device,pld)或其他集成芯片。
158.本技术实施例的方案在执行时,目标进程接收来自源进程通过跨进程通讯中心进程发送的查询请求消息,根据所述查询请求消息执行查询得到查询结果,基于所述查询结果生成查询响应消息,将所述查询响应消息通过所述跨进程通讯中心进程发送给所述源进程。跨进程查询时,目标进程通过跨进程通讯中心进程接收来自源进程的查询请求消息,可提高多进程间通信效率,降低开发成本。
159.本技术实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述的方法步骤,具体执行过程可以参见图2或图3或图5或图7所示实施例的具体说明,在此不进行赘述。
160.本技术还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的模板的控制方法。
161.请参见图9,为本技术实施例提供了一种电子设备的结构示意图。如图9所示,所述电子设备9可以包括:至少一个处理器901,至少一个网络接口904,用户接口903,存储器905,至少一个通信总线902。
162.其中,通信总线902用于实现这些组件之间的连接通信。
163.其中,用户接口903可以包括显示屏(display)、摄像头(camera),可选用户接口903还可以包括标准的有线接口、无线接口。
164.其中,网络接口904可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
165.其中,处理器901可以包括一个或者多个处理核心。处理器901利用各种借口和线路连接整个终端900内的各个部分,通过运行或执行存储在存储器905内的指令、程序、代码集或指令集,以及调用存储在存储器905内的数据,执行终端900的各种功能和处理数据。可选的,处理器901可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器501可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器901中,单独通过一块芯片进行实现。
166.其中,存储器905可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器905包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器905可用于存储指令、程序、代码、代码集或指令集。存储器905可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器905可选的还可以是至少一个位于远离前述处理器901的存储装置。如图9所示,作为一种计算机存储介质的存储器905中可以包括操作系统、网络通信模块、用户接口模块以及跨进程通信应用程序。
167.在图9所示的电子设备900中,用户接口903主要用于为用户提供输入的接口,获取用户输入的数据。
168.实施例一:
169.在电子设备为可运行跨进程通讯中心进程的计算机时,处理器901可以用于调用存储器905中存储的跨进程通信应用程序,并具体执行以下操作:
170.接收来自第一进程的第一事件消息;
171.识别所述第一事件消息的消息类型;
172.在预先存储的注册表中查询是否存在与所述消息类型关联的第二进程;
173.若存在,判断所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型是否相同;
174.若为否,将所述第二进程的消息类型覆盖所述第一事件消息的消息类型后,生成第二事件消息;
175.将所述第二事件消息发送给所述第二进程。
176.在一个实施例中,处理器901执行所述接收来第一进程的第一事件消息之前,还包括:
177.在跨进程通讯中心进程完成启动后,创建消息队列文件以及为所述消息队列文件分配消息队列标识;
178.设置所述消息队列文件监听的消息类型为全消息类型;其中,所述全消息类型表示所述消息队列文件用于保存所有发送给所述跨进程通讯中心进程的事件消息;
179.在所述跨进程通讯中心进程监听到的事件消息为预设的消息类型时,解析所述监听到的事件消息得到对应的进程名称和事件类型;
180.根据所述进程名称获取目标消息队列标识;其中,所述目标消息队列标识为发送所述监听到的事件消息的进程对应的消息队列的标识;
181.将注册信息记录到注册表完成注册;其中,所述注册信息包括所述进程名称、所述事件类型和所述目标消息队列标识。
182.在一个实施例中,处理器901执行所述操作,还包括:
183.在所述第二进程的消息类型和所述第一事件消息的消息类型相同时,将所述第一事件消息发送给所述第二进程。
184.在一个实施例中,处理器901执行所述根据所述进程名称获取目标消息队列标识,包括:
185.确定所述进程名称;
186.对所述进程名称和预设关键词进行拼接得到目标消息队列文件名称;
187.基于所述目标消息队列文件名称获取目标消息队列标识。
188.在一个实施例中,处理器901执行所述将所述第二事件消息发送给所述第二进程,包括:
189.在所述注册表中获取所述第二进程的消息队列标识;
190.将所述第二事件消息发送给所述第二进程的消息队列标识所指示的消息队列。
191.在一个实施例中,处理器901执行所述将注册信息记录到注册表完成注册之后,还包括:
192.接收来自源进程的查询请求消息;其中,所述查询请求携带目标进程的消息队列标识和第一查询标识,所述源进程在所述注册表中注册的监听事件类型为第一事件类型;
193.将所述查询请求消息发送给所述目标进程;
194.接收来自所述目标进程的查询响应消息;其中,所述查询响应消息携带所述第一查询标识和所述第一事件类型;
195.将所述查询响应消息发送给所述源进程。
196.实施例二:
197.在电子设备为可运行源进程的计算机时,处理器901可以用于调用存储器905中存储的跨进程查询应用程序,并具体执行以下操作:
198.生成查询请求消息;其中,所述查询请求携带目标进程的消息队列标识和第一查询标识;
199.在注册表中注册监听事件类型为第一事件类型;
200.将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程;
201.接收所述目标进程通过所述跨进程通讯中心进程返回的查询响应消息;其中,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型;
202.解析所述查询响应消息得到查询结果,将所述查询结果存放至对应的消息队列文件中。
203.在一个实施例中,处理器901执行所述将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程,包括:
204.识别所述查询请求消息的查询方式;
205.在所述查询方式为同步查询时,调用同步查询接口;
206.对所述源进程设置事件锁;其中,所述事件锁设置超时时长;
207.通过所述同步查询接口将所述查询请求通过跨进程通讯中心进程发送给所述目标进程;
208.其中,所述接收来自所述目标进程的查询响应消息,包括:
209.解析所述查询响应消息确定所述第一查询标识;
210.在所述注册表中查询是否存在与所述第一查询标识关联的所述第一事件类型;
211.若为是,在查询时长未超过所述超时时长时,解锁所述事件锁。
212.在一个实施例中,处理器901执行所述将所述查询请求消息通过跨进程通讯中心进程发送给所述目标进程,包括:
213.识别所述查询请求消息的查询方式;
214.在所述查询方式为异步查询时,调用异步查询接口;
215.将所述第一查询标识记录在所述注册表中;
216.通过所述异步查询接口将所述查询请求通过跨进程通讯中心进程发送给所述目标进程。
217.实施例三:
218.在电子设备为可运行目标进程的计算机时,处理器901可以用于调用存储器905中存储的跨进程查询应用程序,并具体执行以下操作:
219.接收来自源进程通过跨进程通讯中心进程发送的查询请求消息;其中,所述查询请求携带目标进程的消息队列标识和第一查询标识;
220.根据所述查询请求消息执行查询得到查询结果;
221.基于所述查询结果生成查询响应消息;其中,所述查询响应消息携带所述第一查询标识,所述查询响应消息为所述第一事件类型;
222.将所述查询响应消息通过所述跨进程通讯中心进程发送给所述源进程。
223.本技术实施例的技术构思和图2或图3或图5或图7的技术构思相同,具体过程可参照图2或图3或图5或图7的方法实施例,此处不再赘述。
224.在本技术实施例中,跨进程通讯中心进程接收来自第一进程的第一事件消息,识别所述第一事件消息的消息类型,在预先存储的注册表中查询是否存在与所述消息类型关联的第二进程,若存在,判断所述注册表中存储的所述第二进程的消息类型和所述第一事件消息的消息类型是否相同,若为否,将所述第二进程的消息类型覆盖所述第一事件消息的消息类型后,生成第二事件消息,将所述第二事件消息发送给所述第二进程。跨进程通信时,通过启动跨进程通讯中心进程作为进程间通信的中间载体,可提高多进程间通信效率,降低开发成本。
225.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
226.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献