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

异步事件通知方法和装置、存储介质及电子设备与流程

2022-02-25 21:59:36 来源:中国专利 TAG:


1.本发明涉及通信领域,具体而言,涉及一种异步事件通知方法和装置、存储介质及电子设备。


背景技术:

2.在平台开发过程中,经常需要实现异步事件的处理,包括本地异步事件和网络异步事件。本地异步事件可以通过pipeline实现,网络异步事件则需要通过socket来实现,通常做法都是通过注册系统提供的分发函数维护一个event loop实现事件的监听和上报,事件触发后需要移除该事件以及释放相应的资源。而基于event loop实现事件的监听和上报是通过定时主动问询的方式,直到问询到该事件,在定时问询的过程中,需要不停的进行问询交互,导致事件通知效率较低。
3.而且,不同的平台有不同的事件分发函数和相应的event loop机制,因此,即使针对不同平台实现相同的功能,也需要基于不同平台的事件分发函数进行编码,由此存在大量的重复编码,由于代码利用率较低也会导致事件通知效率较低。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种异步事件通知方法和装置、存储介质及电子设备,以至少解决在异步事件通知中存在的处理效率较低的技术问题。
6.根据本发明实施例的一个方面,提供了一种异步事件通知方法,包括:在事件封装请求连接目标应用的情况下,根据上述目标应用的系统类型连接上述事件封装与上述目标应用,其中,上述事件封装中封装有事件通知库和至少一个管线,上述事件通知库中注册有目标事件;建立上述目标事件与目标管线的关联关系,其中,上述关联关系指示上述目标管线用于监听上述目标事件;在上述目标应用中发生上述目标事件的情况下,上述事件封装接收上述目标事件的事件通知。
7.根据本发明实施例的另一方面,还提供了一种异步事件通知装置,包括:连接单元,用于在事件封装请求连接目标应用的情况下,根据上述目标应用的系统类型连接上述事件封装与上述目标应用,其中,上述事件封装中封装有事件通知库和至少一个管线,上述事件通知库中注册有目标事件;关联单元,用于建立上述目标事件与目标管线的关联关系,其中,上述关联关系指示上述目标管线用于监听上述目标事件;接收单元,用于在上述目标应用中发生上述目标事件的情况下,上述事件封装接收上述目标事件的事件通知。
8.根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述异步事件通知方法。
9.根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的异步
事件通知方法。
10.在本发明实施例中,采用根据目标应用的系统类型连接事件封装与目标应用,并建立事件封装中事件通知库中注册的目标事件与事件封装中管线的关联关系,从而使用目标管线监听目标事件,以在目标应用中发生目标事件的情况下,接收目标应用中发生目标事件的事件通知的方式,通过适用于各种系统类型的事件封装,并在事件封装中注册事件以监听应用中事件发生,从而在事件发生的情况下,接收到事件发生的通知,避免每隔时间间隔主动发起事件问询的方式造成的异步事件通知效率低的问题,达到了通过事件封装接收应用中异步事件发生的事件通知的目的,从而实现了提高异步事件处理效率的技术效果,进而解决了在异步事件通知中存在的处理效率较低的技术问题。
附图说明
11.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
12.图1是根据本发明实施例的一种可选的异步事件通知方法的应用环境的示意图;
13.图2是根据本发明实施例的一种可选的异步事件通知方法的流程示意图;
14.图3是根据本发明实施例的一种可选的异步事件通知方法的流程示意图;
15.图4是根据本发明实施例的一种可选的异步事件通知方法的流程示意图;
16.图5是根据本发明实施例的一种可选的异步事件通知方法的流程示意图;
17.图6是根据本发明实施例的一种可选的异步事件通知方法的事件生命周期示意图;
18.图7是根据本发明实施例的一种可选的异步事件通知装置的结构示意图;
19.图8是根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
20.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
21.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
22.根据本发明实施例的一个方面,提供了一种异步事件通知方法,可选地,上述异步事件通知方法可以但不限于应用于如图1所示的环境中。终端设备102中安装有目标应用104和事件封装106。终端设备102通过网络110与服务器112进行数据交互。目标应用104通
过网络110将应用的运行数据发送给服务器112,数据库114存储运行数据并由处理引擎116进行相应处理得到用于反馈的应用数据,并将应用数据通过网络110反馈给目标应用104。
23.运行在终端设备102内的目标应用104中发生的异步事件的通知不限于通过依次执行s102至s106实现。连接事件封装与目标应用。在事件封装请求连接目标应用的情况下,根据目标应用的系统类型连接事件封装与目标应用,事件封装中封装有事件通知库和至少一个管线,事件通知库中注册有目标事件。建立目标事件与目标管线的关联关系。关联关系指示目标管线用于监听目标事件。事件封装接收目标事件的事件通知。在目标应用中发生目标事件的情况下,事件封装接收目标事件的事件通知。
24.可选地,在本实施例中,上述终端设备102可以是配置有目标应用的客户端的终端设备,可以包括但不限于以下至少之一:手机(如android手机、ios手机等)、笔记本电脑、平板电脑、掌上电脑、mid(mobile internet devices,移动互联网设备)、pad、台式电脑、智能电视等。目标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
25.作为一种可选的实施方式,如图2所示,上述异步事件通知方法包括:
26.s202,在事件封装请求连接目标应用的情况下,根据目标应用的系统类型连接事件封装与目标应用。
27.在上述s202中,事件封装中封装有事件通知库和至少一个管线,事件通知库中注册有目标事件。连接事件封装与目标应用以建立事件封装与目标应用的通信和数据传输链接。目标事件不限于是任意类型的异步事件。
28.在通过事件封装监控目标应用中异步事件的情况下,触发事件封装连接目标应用的连接请求。事件封装中不限于封装有多种通信协议以连接各种系统类型的应用。事件通知库中注册的异步事件数量阈值在此不作限定。
29.s204,建立目标事件与目标管线的关联关系。
30.在上述s204中,关联关系指示目标管线用于监听目标事件。利用事件封装中的管线进行目标事件的监听,以在目标应用中发生目标事件的情况下,接收目标事件发生的通知。
31.s206,在目标应用中发生目标事件的情况下,事件封装接收目标事件的事件通知。
32.可选地,在目标应用中发生目标事件的情况下,通过监听目标事件的目标管线接收时间通知。
33.在本技术实施例中,采用根据目标应用的系统类型连接事件封装与目标应用,并建立事件封装中事件通知库中注册的目标事件与事件封装中管线的关联关系,从而使用目标管线监听目标事件,以在目标应用中发生目标事件的情况下,接收目标应用中发生目标事件的事件通知的方式,通过适用于各种系统类型的事件封装,并在事件封装中注册事件以监听应用中事件发生,从而在事件发生的情况下,接收到事件发生的通知,避免每隔时间间隔主动发起事件问询的方式造成的异步事件通知效率低的问题,达到了通过事件封装接收应用中异步时间发生的事件通知的目的,从而实现了提高异步事件处理效率的技术效
果,进而解决了在异步事件通知中存在的处理效率较低的技术问题。
34.作为一种可选的实施方式,如图3所示,上述根据目标应用的系统类型连接事件封装与目标应用包括:
35.s302,确定目标应用的系统类型,其中,系统类型用于指示目标应用的应用开发基础类型;
36.s304,调用事件封装中与系统类型对应的通信接口连接目标应用。
37.可选地,应用开发基础类型用于指示应用开发的系统框架,不限于是android、ios、windows、linux、unix中的一种。在事件封装中封装有与上述多种系统框架分别对应的通信接口。将多个系统通信接口封装在事件封装中,实现事件封装与多类型的应用进行连接,实现类型应用的异步事件通知。
38.在本技术实施例中,通过在事件封装中封装多种通信协议对应的通信接口,实现了事件封装适用于多种系统类型的应用,降低事件封装的应用限制,提高事件封装的应用便捷性。
39.作为一种可选的实施方式,如图4所示,上述建立目标事件与目标管线的关联关系包括:
40.s402,在目标管线中注册目标监听事件,其中,目标监听事件用于接收事件通知;
41.s404,关联目标监听事件与目标事件。
42.可选地,目标管线中注册的监听事件用于接收关联的事件的事件通知,以确定应用中有目标事件的发生。
43.作为一种可选的实施方式,上述关联目标监听事件与目标事件包括:在目标监听事件中配置目标事件的事件类型和回调函数。
44.在目标监听事件配置与目标事件的事件类型对应的事件读取功能和事件写入功能。同时,配置目标事件的回调函数,以通过回调函数实现目标事件的读取和写入。
45.作为一种可选的实施方式,上述在事件封装接收目标事件的事件通知之后,还包括:通过回调函数从目标管线中读取目标事件的事件数据。
46.作为一种可选的实施方式,上述在读取目标事件的事件数据之后,还包括:在接收到移除指令的情况下,移除注册在事件通知库中的目标事件,并解除目标事件与目标管线的关联关系。
47.在无须继续监控目标应用中的目标事件的发生的情况下,将目标事件从事件通知库中移除,同时解除目标事件与目标管线的关联关系,释放目标管线。解除目标事件与目标管线的关联关系不限于删除目标管线中的目标监听事件。
48.作为一种可选的实施方式,上述在根据目标应用的系统类型连接事件封装与目标应用之前,还包括:初始化事件封装,其中,事件封装在被初始化后启动事件分发线程,事件分发线程用于将注册的异步事件分发给管线。
49.事件封装中不限于包括事件分发线程,用于将注册在事件通知库中的异步事件分发给管线。以事件通知库选用libevent2为例,异步事件通知流程不限于如图5所示。事件封装主要包括3个处理模块:servleteventcontroller(事件控制器),actiondispatcher(执行调度器)、eventdispatcher(事件调度器)。servleteventcontroller用于事件多路分发以及事件注册和移除,actiondispatcher作为扩展使用,在本实施例中没有应用,
eventdispatcher提供事件封装与目标应用的连接接口,接收事件注册和移除指令。eventdispatcher持有servleteventcontroller和actiondispatcher。servleteventcontroller内持有管线,事件注册至事件分发器,由事件分发器对注册的事件进行管理和分发。
50.s500,实例化servleteventcontroller,完成后跳转至s510;
51.s510,管线(readfd和writefd)初始化,完成后跳转至s512;
52.s512,libevent2初始化,完成后跳转至s514;
53.s514,关联事件源,完成后跳转至s516;
54.s516,添加事件类型,完成后跳转至s518;
55.s518,启动事件分发线程,至此管线配置完成,跳转至s520。
56.s520,实例化servletelement,包括实例化actiondispatcher和实例化eventdispatcher,完成后跳转至s522;
57.s522,eventdispatcher注册read、write、timer事件,设置回调函数,完成后跳转至s524;
58.s524,eventdispatcher实现事件回调通知,完成后跳转至s526;
59.s526,发送数据到管线的writefd,完成后跳转至s528;
60.s528,多路分发中心侦测到写入事件,完成后跳转至s530;
61.s530,回调函数被调用,完成后跳转至s532;
62.s532,事件回调被触发,完成后跳转至s534;
63.s534,从管线的readfd读取数据。
64.在异步事件通知中事件的生命周期以及事件在生命周期中不同状态之间的转换不限于如图6所示。由event(事件)生命周期的周期状态包括:初始化、非待定(non-pending)、待定(pending)、触发(active)。事件的初始化存在两种方式:对未初始化(uninitialized)事件通过event_assign()进行初始化和通过event_new()创建一个初始化的事件。在事件初始化时,完成回调函数的设定。事件在的初始状态是非待定(non-pending),表示事件不会被触发。事件在触发(active)状态下,执行回调函数,在回调函数执行完毕时,事件退出触发(active)状态,回归至待定状态。
65.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
66.根据本发明实施例的另一个方面,还提供了一种用于实施上述异步事件通知方法的异步事件通知装置。如图7所示,该装置包括:
67.连接单元702,用于在事件封装请求连接目标应用的情况下,根据目标应用的系统类型连接事件封装与目标应用,其中,事件封装中封装有事件通知库和至少一个管线,事件通知库中注册有目标事件;
68.关联单元704,用于建立目标事件与目标管线的关联关系,其中,关联关系指示目标管线用于监听目标事件;
69.接收单元706,用于在目标应用中发生目标事件的情况下,事件封装接收目标事件的事件通知。
70.可选地,上述连接单元702包括:
71.确定模块,用于确定目标应用的系统类型,其中,系统类型用于指示目标应用的应用开发基础类型;
72.调用模块,用于调用事件封装中与系统类型对应的通信接口连接目标应用。
73.可选地,上述关联单元704包括:
74.注册模块,用于在目标管线中注册目标监听事件,其中,目标监听事件用于接收事件通知;
75.关联模块,用于关联目标监听事件与目标事件。
76.可选地,上述关联模块还用于在目标监听事件中配置目标事件的事件类型和回调函数。
77.可选地,上述异步事件通知装置还包括读取单元,用于在事件封装接收目标事件的事件通知之后,通过回调函数从目标管线中读取目标事件的事件数据。
78.可选地,上述异步事件通知装置还包括移除单元,用于在读取目标事件的事件数据之后,在接收到移除指令的情况下,移除注册在事件通知库中的目标事件,并解除目标事件与目标管线的关联关系。
79.可选地,上述异步事件通知装置还包括初始单元,用于在根据目标应用的系统类型连接事件封装与目标应用之前,初始化事件封装,其中,事件封装在被初始化后启动事件分发线程,事件分发线程用于将注册的异步事件分发给管线。
80.在本技术实施例中,采用根据目标应用的系统类型连接事件封装与目标应用,并建立事件封装中事件通知库中注册的目标事件与事件封装中管线的关联关系,从而使用目标管线监听目标事件,以在目标应用中发生目标事件的情况下,接收目标应用中发生目标事件的事件通知的方式,通过适用于各种系统类型的事件封装,并在事件封装中注册事件以监听应用中事件发生,从而在事件发生的情况下,接收到事件发生的通知,避免每隔时间间隔主动发起事件问询的方式造成的异步事件通知效率低的问题,达到了通过事件封装接收应用中异步时间发生的事件通知的目的,从而实现了提高异步事件处理效率的技术效果,进而解决了在异步事件通知中存在的处理效率较低的技术问题。
81.根据本发明实施例的又一个方面,还提供了一种用于实施上述异步事件通知方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为终端设备为例来说明。如图8所示,该电子设备包括存储器802和处理器804,该存储器802中存储有计算机程序,该处理器804被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
82.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
83.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
84.s1,在事件封装请求连接目标应用的情况下,根据目标应用的系统类型连接事件封装与目标应用,其中,事件封装中封装有事件通知库和至少一个管线,事件通知库中注册有目标事件;
85.s2,建立目标事件与目标管线的关联关系,其中,关联关系指示目标管线用于监听目标事件;
86.s3,在目标应用中发生目标事件的情况下,事件封装接收目标事件的事件通知。
87.可选地,本领域普通技术人员可以理解,图8所示的结构仅为示意,电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图8其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图8中所示更多或者更少的组件(如网络接口等),或者具有与图8所示不同的配置。
88.其中,存储器802可用于存储软件程序以及模块,如本发明实施例中的异步事件通知方法和装置对应的程序指令/模块,处理器804通过运行存储在存储器802内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的异步事件通知方法。存储器802可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器802可进一步包括相对于处理器804远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器802具体可以但不限于用于存储事件封装,事件通知库,管线,事件数据等信息。作为一种示例,如图8所示,上述存储器802中可以但不限于包括上述异步事件通知装置中的连接单元702,关联单元704和接收单元706。此外,还可以包括但不限于上述异步事件通知装置中的其他模块单元,本示例中不再赘述。
89.可选地,上述的传输装置806用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置806包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置806为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
90.此外,上述电子设备还包括:显示器808,用于显示上述事件通知;和连接总线810,用于连接上述电子设备中的各个模块部件。
91.在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peer to peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
92.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述异步事件通知方面的各种可选实现方式中提供的方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
93.可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
94.s1,在事件封装请求连接目标应用的情况下,根据目标应用的系统类型连接事件
封装与目标应用,其中,事件封装中封装有事件通知库和至少一个管线,事件通知库中注册有目标事件;
95.s2,建立目标事件与目标管线的关联关系,其中,关联关系指示目标管线用于监听目标事件;
96.s3,在目标应用中发生目标事件的情况下,事件封装接收目标事件的事件通知。
97.可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
98.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
99.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
100.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
101.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
102.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
103.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
104.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

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

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

相关文献