CN111596975A - 事件调用方法、装置、电子设备及存储介质 - Google Patents

事件调用方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111596975A
CN111596975A CN202010353304.1A CN202010353304A CN111596975A CN 111596975 A CN111596975 A CN 111596975A CN 202010353304 A CN202010353304 A CN 202010353304A CN 111596975 A CN111596975 A CN 111596975A
Authority
CN
China
Prior art keywords
event
registration
processed
parameter
target
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
Application number
CN202010353304.1A
Other languages
English (en)
Other versions
CN111596975B (zh
Inventor
黄志鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuba Co Ltd
Original Assignee
Wuba Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuba Co Ltd filed Critical Wuba Co Ltd
Priority to CN202010353304.1A priority Critical patent/CN111596975B/zh
Publication of CN111596975A publication Critical patent/CN111596975A/zh
Application granted granted Critical
Publication of CN111596975B publication Critical patent/CN111596975B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种事件调用方法、装置、电子设备及存储介质,首先,获取待处理事件对应的方法名和目标参数,然后,根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件,再进一步从各所述预选注册事件中确定目标注册事件,最后,确定所述待处理事件的调用方法,以利用所述调用方法处理所述待处理事件。由于本申请所提供的事件调用方法与待处理事件具有最短继承路径,因此,该调用方法的参数可以最接近待处理事件所对应的参数,从而减少待处理事件的分发步骤,可以有效提高处理效率。

Description

事件调用方法、装置、电子设备及存储介质
技术领域
本申请涉及事件处理技术领域,尤其涉及一种事件调用方法、装置、电子设备及存储介质。
背景技术
用户产生需求之后会通过用户界面向系统发出各种请求,这些请求相当于一个个待处理的事件,而系统需要通过相应的方法来处理这些事件,这些用来处理事件的方法是利用函数方法调用与事件相关的参数来实现的,这些事件在被处理的过程中相当于一个被分发传递的过程,而这些方法相当于调用方法。
通常采用事件总线机制来分发事件,即通过既定的函数方法和既定的参数来分发事件,以处理事件。但是,在实际应用中会存在重载问题,即待处理事件与事件总线机制所采用的函数方法相同,但是相关联的参数不同,那么该总线机制将无法有效处理这样的待处理事件。同时,即使待处理事件与事件总线机制所对应的参数之间存在关联关系,也可能由于事件总线机制所采用的既定的参数与待处理事件所采用的参数的关联性较低,因此需要耗费较多的分发步骤来处理该待处理事件,从而令处理效率大大降低。
发明内容
本申请提供了一种事件调用方法的确定方法、装置、电子设备即存储介质,以提高事件的处理效率。
第一方面,本申请实施例提供了一种事件调用方法,所述方法包括:
获取待处理事件对应的方法名和目标参数,所述待处理事件为用户通过操作页面向系统发出的请求,所述方法名为处理所述待处理事件的函数方法的名称,所述目标参数为使用所述函数方法处理所述待处理事件时所需的参数;
根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件,其中,所述事件注册列表包括注册事件、所述注册事件对应的方法名以及所述注册事件对应的参数;所述预选注册事件为在所述事件注册列表中,与所述待处理事件具有相同方法名和相匹配参数的注册事件;
从各所述预选注册事件中确定目标注册事件,所述目标注册事件为所述预选注册事件中具有最短继承路径的一个,所述继承路径为由所述目标参数与所述预选注册事件的参数之间通过继承关系形成的层级结构;
获取所述待处理事件的调用方法,利用所述调用方法处理所述待处理事件,以响应用户通过所述操作页面向系统发出的所述请求,其中,所述调用方法为利用与所述目标注册事件的方法名对应的函数方法按照所述最短继承路径依次调用所述目标注册事件的参数的操作。
在本发明实施例第一方面一种可能的实现方式中,所述根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件包括:
根据所述方法名从所述事件注册列表中获取待选注册事件,所述待选注册事件为具有与所述方法名相同的方法名的注册事件;
获取所述目标参数的参数继承路径,所述目标参数的参数继承路径用于表示所述目标参数与其它参数之间的继承关系;
从所述事件注册列表中获取每一所述待选注册事件对应的参数;
获取每一所述待选注册事件对应的参数与所述目标参数之间的继承路径;
从所述待选注册事件中确定预选注册事件,所述预选注册事件为对应的参数与所述目标参数之间的继承路径被所述目标参数的参数继承路径覆盖的待选注册事件。
在本发明实施例第一方面一种可能的实现方式中,所述从各所述预选注册事件中确定目标注册事件包括:
根据所述预选注册事件对应的参数与所述目标参数之间的继承路径,计算所述预选注册事件对应的路径深度,所述预选注册事件的路径深度为所述预选注册事件中各参数与所述目标参数之间的继承路径中包含的层级数量的总和;
确定目标注册事件,所述目标注册事件为路径深度最小的所述预选注册事件。
在本发明实施例第一方面一种可能的实现方式中,所述获取所述待处理事件的调用方法,利用所述调用方法处理所述待处理事件,以响应用户通过所述操作页面向系统发出的所述请求之后包括:
获取所述待处理事件的类字节码,所述类字节码用于唯一标识所述待处理事件,所述类字节码与所述待处理事件的调用方法一一对应;
根据所述类字节码确定对应的调用方法,并利用所述调用方法处理所述类字节码标识的所述待处理事件。
在本发明实施例第一方面一种可能的实现方式中,所述方法还包括:
如果所述注册事件列表中不存在目标注册事件,则将所述待处理事件确定为目标注册事件,并由技术人员根据所述目标参数为所述待处理事件设计调用方法;
将所述待处理事件、所述待处理事件对应的方法名以及所述待处理事件对应的目标参数注册到所述事件注册列表中,以更新所述事件注册列表。
第二方面,本申请实施例提供了一种事件调用装置,所述装置包括:
待处理事件信息获取模块,用于获取待处理事件对应的方法名和目标参数,所述待处理事件为用户通过操作页面向系统发出的请求,所述方法名为处理所述待处理事件的函数方法的名称,所述目标参数为使用所述函数方法处理所述待处理事件时所需的参数;
预选注册事件确定模块,用于根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件,其中,所述事件注册列表包括注册事件、所述注册事件对应的方法名以及所述注册事件对应的参数;所述预选注册事件为在所述事件注册列表中,与所述待处理事件具有相同方法名和相匹配参数的注册事件;
目标注册事件确定模块,用于从各所述预选注册事件中确定目标注册事件,所述目标注册事件为所述预选注册事件中具有最短继承路径的一个,所述继承路径为由所述目标参数与所述预选注册事件的参数之间通过继承关系形成的层级结构;
调用方法确定模块,用于获取所述待处理事件的调用方法,利用所述调用方法处理所述待处理事件,以响应用户通过所述操作页面向系统发出的所述请求,其中,所述调用方法为利用与所述目标注册事件的方法名对应的函数方法按照所述最短继承路径依次调用所述目标注册事件的参数的操作。
在本发明实施例第二方面一种可能的实现方式中,所述预选注册事件确定模块包括:
目标方法名确定模块,用于根据所述方法名从所述事件注册列表中获取待选注册事件,所述待选注册事件为具有与所述方法名相同的方法名的注册事件;
待选注册事件获取模块,用于获取所述目标参数的参数继承路径,所述目标参数的参数继承路径用于表示所述目标参数与其它参数之间的继承关系;
参数获取模块,用于从所述事件注册列表中获取每一所述待选注册事件对应的参数;
第一获取模块,用于获取每一所述待选注册事件对应的参数与所述目标参数之间的继承路径;
第一确定模块,用于从所述待选注册事件中确定预选注册事件,所述预选注册事件为对应的参数与所述目标参数之间的继承路径被所述目标参数的参数继承路径覆盖的待选注册事件。
在本发明实施例第二方面一种可能的实现方式中,所述目标注册事件确定模块包括:
路径深度计算模块,用于根据所述预选注册事件对应的参数与所述目标参数之间的继承路径,计算所述预选注册事件对应的路径深度,所述预选注册事件的路径深度为所述预选注册事件中各参数与所述目标参数之间的继承路径中包含的层级数量的总和;
第二确定模块,用于确定目标注册事件,所述目标注册事件为路径深度最小的所述预选注册事件。
在本发明实施例第二方面一种可能的实现方式中,所述装置还包括:
类字节码获取模块,用于获取所述待处理事件的类字节码,所述类字节码用于唯一标识所述待处理事件,所述类字节码与所述待处理事件的调用方法一一对应;
反馈模块,用于根据所述类字节码确定对应的调用方法,并利用所述调用方法处理所述类字节码标识的所述待处理事件。
在本发明实施例第二方面一种可能的实现方式中,所述装置还包括:
第三确定模块,用于如果所述注册事件列表中不存在目标注册事件,则将所述待处理事件确定为目标注册事件,并由技术人员根据所述目标参数为所述待处理事件设计调用方法;
更新模块,用于将所述待处理事件、所述待处理事件对应的方法名以及所述待处理事件对应的目标参数注册到所述事件注册列表中,以更新所述事件注册列表。
第三方面,本申请提供了一种电子设备,所述电子设备包括:
处理器,以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的事件调用方法。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的事件调用方法。
本申请实施例提供了一种事件调用方法、装置、电子设备及存储介质,首先,获取待处理事件对应的方法名和目标参数,所述待处理事件为用户通过操作页面向系统发出的请求,然后,根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件,再进一步从各所述预选注册事件中确定目标注册事件,最后,确定所述待处理事件的调用方法,以利用所述调用方法处理所述待处理事件。由于本申请所提供的事件调用方法与待处理事件具有最短继承路径,因此,该调用方法的参数可以最接近待处理事件所对应的参数,从而减少待处理事件的分发步骤,可以有效提高处理效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种事件调用方法的流程图;
图2为本申请实施例提供的一种确定预选注册事件的方法的流程图;
图3为本申请实施例提供的一种确定目标注册事件的方法的流程图;
图4为本申请实施例提供的一种调用方法的反馈方法的流程图;
图5为本申请实施例提供地一种更新事件注册列表的方法的流程图;
图6为本申请实施例提供的事件调用装置实施例一的结构示意图;
图7为本申请实施例提供的事件调用装置实施例二的结构示意图;
图8为本申请实施例提供的事件调用装置实施例三的结构示意图;
图9为本申请实施例提供的事件调用装置实施例四的结构示意图;
图10为本申请实施例提供的事件调用装置实施例五的结构示意图;
图11为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本申请实施例提供的一种事件调用方法的流程图,如图1所示,所述方法包括:
S1、获取待处理事件对应的方法名和目标参数,所述待处理事件为用户通过操作页面向系统发出的请求,所述方法名为处理所述待处理事件的函数方法的名称,所述目标参数为使用所述函数方法处理所述待处理事件时所需的参数。
本申请实施例所提供的系统可以为具有事件处理和分发功能的服务器、处理器、平台等实体机或者虚拟机。待处理事件即为跟随用户在应用程序的操作界面根据需求产生的数据请求,对于每一个待处理事件都会有对应的方法名,即用于处理该待处理事件的函数方法的名称,通过这个方法名,就可以确定用于处理该待处理事件的函数方法。通常一个函数方法的实施需要通过调用参数来实现,对于不同事件来说,由于每个事件所带有的参数不同,因此,即使每个事件想要处理同一个问题,即使采用同一个函数方法,但是由于参数的不同,在处理每个事件时,该函数方法所调用的参数也就不同,因此,每个事件所对应的利用函数方法调用参数的过程,即调用方法也就不同。而每个事件在处理的过程中,必须使用与其对应的参数,否则该事件将无法被有效处理。由以上可知,待处理事件也必然有其对应的参数,在本实施例中定义为目标参数。通常,这些待处理事件的方法名、目标参数都可以以字符串的形式存储于用户发起的请求中。
S2、根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件,其中,所述事件注册列表包括注册事件、所述注册事件对应的方法名以及所述注册事件对应的参数;所述预选注册事件为在所述事件注册列表中,与所述待处理事件具有相同方法名和相匹配参数的注册事件。
由上文可知,对于具有不同参数的事件均有对应的调用方法,那么可以将组成这些事件的调用方法对应的方法名及参数进行记录,并以此作为一套处理待处理事件的参考,当出现待处理事件时,可以直接从这些记录中找寻对应的调用方法来进行处理,从而减少针对每一待处理事件就编写一次调用方法的时间,也可以避免采用固定的调用方法而无法有效处理待处理事件的问题。
具体地,可以将这些需要被记录的事件定义为注册事件,在注册这些注册事件时,可以将注册事件的方法名作为key,将每一注册事件对应的参数作为value,以数据对的形式进行存储,进一步地,该事件注册列表可以为表格形式,其中,每一注册事件的参数可以为一个二级列表,具有同一方法名的注册事件的二级列表规划在一起,从而可以缩短从事件注册列表中查询注册事件的时间。
进一步地,如图2所示,为本申请实施例提供的一种确定预选注册事件的方法的流程图,所述方法包括:
S201、根据所述方法名从所述事件注册列表中获取待选注册事件,所述待选注册事件为具有与所述方法名相同的方法名的注册事件;
S202、获取所述目标参数的参数继承路径,所述目标参数的参数继承路径用于表示所述目标参数与其它参数之间的继承关系;
S203、从所述事件注册列表中获取每一所述待选注册事件对应的参数;
S204、获取每一所述待选注册事件对应的参数与所述目标参数之间的继承路径;
S205、从所述待选注册事件中确定预选注册事件,所述预选注册事件为对应的参数与所述目标参数之间的继承路径被所述目标参数的参数继承路径覆盖的待选注册事件。
由上文可知,待处理事件必须使用与其对应的方法名和参数,因此,需要首先从事件注册列表中选出与待处理事件相同的方法名,即目标方法名。由事件注册列表的建立方式可知,该目标方法名后方跟随对应的各个注册事件,这些注册事件均对应该目标方法名,这些注册事件即为待选注册事件。然后,获取目标参数的参数继承路径,例如,目标参数为A和B2,对于目标参数A的参数继承路径为A→A1→A2,对于目标参数B2的参数继承路径为B→B1→B2,可见,参数继承路径也可以定义为逐级传递的过程,即如果想要调用到B2,就必须先按照顺序调用B和B1。进一步地,从事件注册列表中获取这些待选注册事件对应的参数,例如注册事件1,对应的参数为A和B;注册事件2,对应的参数为A和B1;注册事件3,对应的参数为A和C。
由上例可知,可以获取注册事件1和注册事件2中的参数分别与目标参数之间的继承路径,例如,注册事件1的参数A与目标参数A之间的继承路径即为A→A,注册事件1的参数B与目标参数B2之间的继承路径即为B→B1→B2;注册事件2的参数A与目标参数A之间的继承路径即为A→A,注册事件2的参数B1与目标参数B2之间的继承路径即为B1→B2;注册事件3的参数A与目标参数A之间的继承路径即为A→A,注册事件3的参数c与目标参数B2之间无继承关系,也就不存在继承路径。
可见,注册事件1和注册事件2对应的参数与目标参数之间的继承路径均被目标参数的参数继承路径A→A1→A2和B→B1→B2所覆盖,而注册事件3中参数C与目标参数之间不存在继承路径,也就无法被目标参数的参数继承路径所覆盖。因此,注册事件1和注册事件2为预选注册事件。
S3、从各所述预选注册事件中确定目标注册事件,所述目标注册事件为所述预选注册事件中具有最短继承路径的一个,所述继承路径为由所述目标参数与所述预选注册事件的参数之间通过继承关系形成的层级结构。
通过以上步骤得到的预选注册事件均能够用于处理待处理事件,但是,由于这些预选注册事件所对应的参数与待处理事件所对应的目标参数之间具有不同的继承路径,因此,使用不同预选注册事件对应的调用方法来处理待处理事件会对应不同数量的调用步骤,为了提高处理待处理事件的效率,需要选择调用步骤最少的预选注册事件对应的调用方法来处理待处理事件。
具体地,图3为本申请实施例提供的一种确定目标注册事件的方法的流程图,所述方法包括:
S301、根据所述预选注册事件对应的参数与所述目标参数之间的继承路径,计算所述预选注册事件对应的路径深度,所述预选注册事件的路径深度为所述预选注册事件中各参数与所述目标参数之间的继承路径中包含的层级数量的总和;
S302、确定目标注册事件,所述目标注册事件为路径深度最小的所述预选注册事件。
接上例,注册事件1中参数A到目标参数A的预选继承路径为A,注册事件1中参数B到目标参数B2的预选继承路径为B→B1→B2;注册事件2中参数A到目标参数A的预选继承路径为A,注册事件2中参数B1到目标参数B2的预选继承路径为B1→B2。其中,注册事件1对应的继承路径分别包含的层级数量为0和2,注册事件2对应的继承路径分别包含的层级数量为0和1。因此,注册事件1的路径深度为2;注册事件2的路径深度为1。由上文可知,路径深度越小代表预选注册事件调用到目标参数所需的步骤越少,因此,需要将路径深度最小的预选注册事件,即注册事件2,确定为目标注册事件。
S4、获取所述待处理事件的调用方法,利用所述调用方法处理所述待处理事件,以响应用户通过所述操作页面向系统发出的所述请求,其中,所述调用方法为利用与所述目标注册事件的方法名对应的函数方法按照所述最短继承路径依次调用所述目标注册事件的参数的操作。
具体地,如图4所示,为本申请实施例提供的一种调用方法的反馈方法的流程图,所述方法包括:
S401、获取所述待处理事件的类字节码,所述类字节码用于唯一标识所述待处理事件,所述类字节码与所述待处理事件的调用方法一一对应;
S402、根据所述类字节码确定对应的调用方法,并利用所述调用方法处理所述类字节码标识的所述待处理事件。
在确定所使用的调用方法之后,需要将调用方法反馈至对应的待处理事件所在的系统,如果只发出一条待处理事件,那么系统可以准确地使用该调用方法来处理待处理事件。一旦用户发出多条待处理事件,则系统容易使用调用方法来处理并不对应的待处理事件。为了解决上述问题,可以通过待处理事件的类字节码以找到对应地待处理事件,同时,利用类字节码找到对应的调用方法,并用该调用方法处理该待处理事件,以实现调用方法与待处理事件的准确对应。
进一步地,如图5所示,为本申请实施例提供地一种更新事件注册列表的方法的流程图,所述方法包括:
S5、如果所述注册事件列表中不存在目标注册事件,则将所述待处理事件确定为目标注册事件,并由技术人员根据所述目标参数为所述待处理事件设计调用方法;
S6、将所述待处理事件、所述待处理事件对应的方法名以及所述待处理事件对应的目标参数注册到所述事件注册列表中,以更新所述事件注册列表。
在一种情况中,待处理事件可能在事件注册列表中不存在目标注册事件,即没有可参考的调用方法,那么此时就需要以该待处理事件本身作为目标注册事件,由技术人员直接编写相关的调用方法。此时,该待处理事件也就存在了对应的调用方法,为了方便后续再次出现方法名相同,且参数相同或者参数相关联的待处理事件查找调用方法,可以将该待处理事件注册到事件注册列表中,以得到更新后事件注册列表。
图6为本申请实施例提供的事件调用装置实施例一的结构示意图,所述装置包括:待处理事件信息获取模块1,用于获取待处理事件对应的方法名和目标参数,所述待处理事件为用户通过操作页面向系统发出的请求,所述方法名为处理所述待处理事件的函数方法的名称,所述目标参数为使用所述函数方法处理所述待处理事件时所需的参数;预选注册事件确定模块2,用于根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件,其中,所述事件注册列表包括注册事件、所述注册事件对应的方法名以及所述注册事件对应的参数;所述预选注册事件为在所述事件注册列表中,与所述待处理事件具有相同方法名和相匹配参数的注册事件;目标注册事件确定模块3,用于从各所述预选注册事件中确定目标注册事件,所述目标注册事件为所述预选注册事件中具有最短继承路径的一个,所述继承路径为由所述目标参数与所述预选注册事件的参数之间通过继承关系形成的层级结构;调用方法确定模块4,用于获取所述待处理事件的调用方法,利用所述调用方法处理所述待处理事件,以响应用户通过所述操作页面向系统发出的所述请求,其中,所述调用方法为利用与所述目标注册事件的方法名对应的函数方法按照所述最短继承路径依次调用所述目标注册事件的参数的操作。
图7为本申请实施例提供的事件调用方法的确定装置实施例二的结构示意图,所述预选注册事件确定模块2包括:目标方法名确定模块21,用于根据所述方法名从所述事件注册列表中获取待选注册事件,所述待选注册事件为具有与所述方法名相同的方法名的注册事件;待选注册事件获取模块22,用于获取所述目标参数的参数继承路径,所述目标参数的参数继承路径用于表示所述目标参数与其它参数之间的继承关系;参数获取模块23,用于从所述事件注册列表中获取每一所述待选注册事件对应的参数;第一获取模块24,用于获取每一所述待选注册事件对应的参数与所述目标参数之间的继承路径;第一确定模块25,用于从所述待选注册事件中确定预选注册事件,所述预选注册事件为对应的参数与所述目标参数之间的继承路径被所述目标参数的参数继承路径覆盖的待选注册事件。
图8为本申请实施例提供的事件调用方法的确定装置实施例三的结构示意图,所述目标注册事件确定模块3包括:路径深度计算模块31,用于根据所述预选注册事件对应的参数与所述目标参数之间的继承路径,计算所述预选注册事件对应的路径深度,所述预选注册事件的路径深度为所述预选注册事件中各参数与所述目标参数之间的继承路径中包含的层级数量的总和;第二确定模块32,用于确定目标注册事件,所述目标注册事件为路径深度最小的所述预选注册事件。
图9为本申请实施例提供的事件调用方法的确定装置实施例四的结构示意图,所述装置还包括:类字节码获取模块341,用于获取所述待处理事件的类字节码,所述类字节码用于唯一标识所述待处理事件,所述类字节码与所述待处理事件的调用方法一一对应;反馈模块342,用于根据所述类字节码确定对应的调用方法,并利用所述调用方法处理所述类字节码标识的所述待处理事件。
图10为本申请实施例提供的事件调用方法的确定装置实施例五的结构示意图,所述装置还包括:第三确定模块5,用于如果所述注册事件列表中不存在目标注册事件,则将所述待处理事件确定为目标注册事件,并由技术人员根据所述目标参数为所述待处理事件设计调用方法;更新模块6,用于将所述待处理事件、所述待处理事件对应的方法名以及所述待处理事件对应的目标参数注册到所述事件注册列表中,以更新所述事件注册列表。
图11为本发明实施例提供的电子设备的硬件结构示意图,应用于开发端,该电子设备包括:存储器101和处理器102;
存储器101,用于存储计算机程序;
处理器102,用于执行存储器存储的计算机程序,以实现上述实施例中的事件调用方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器101既可以是独立的,也可以跟处理器102集成在一起。
当所述存储器101是独立于处理器102之外的器件时,所述电子设备还可以包括:
总线103,用于连接所述存储器101和处理器102。
本发明实施例提供的电子设备可用于执行上述实施例中任一所示的事件调用方法,其实现方式和技术效果类似,本发明实施例此处不再赘述。
本发明实施例还提供一种可读存储介质,可读存储介质中存储有计算机程序,当消息发送的装置的至少一个处理器执行该计算机程序时,消息发送的装置执行上述实施例任一所述的事件调用方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于以计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种事件调用方法,其特征在于,所述方法包括:
获取待处理事件对应的方法名和目标参数,所述待处理事件为用户通过操作页面向系统发出的请求,所述方法名为处理所述待处理事件的函数方法的名称,所述目标参数为使用所述函数方法处理所述待处理事件时所需的参数;根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件,其中,所述事件注册列表包括注册事件、所述注册事件对应的方法名以及所述注册事件对应的参数;所述预选注册事件为在所述事件注册列表中,与所述待处理事件具有相同方法名和相匹配参数的注册事件;
从各所述预选注册事件中确定目标注册事件,所述目标注册事件为所述预选注册事件中具有最短继承路径的一个,所述继承路径为由所述目标参数与所述预选注册事件的参数之间通过继承关系形成的层级结构;
获取所述待处理事件的调用方法,利用所述调用方法处理所述待处理事件,以响应用户通过所述操作页面向系统发出的所述请求,其中,所述调用方法为利用与所述目标注册事件的方法名对应的函数方法按照所述最短继承路径依次调用所述目标注册事件的参数的操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件包括:
根据所述方法名从所述事件注册列表中获取待选注册事件,所述待选注册事件为具有与所述方法名相同的方法名的注册事件;
获取所述目标参数的参数继承路径,所述目标参数的参数继承路径用于表示所述目标参数与其它参数之间的继承关系;
从所述事件注册列表中获取每一所述待选注册事件对应的参数;
获取每一所述待选注册事件对应的参数与所述目标参数之间的继承路径;
从所述待选注册事件中确定预选注册事件,所述预选注册事件为对应的参数与所述目标参数之间的继承路径被所述目标参数的参数继承路径覆盖的待选注册事件。
3.根据权利要求2所述的方法,其特征在于,所述从各所述预选注册事件中确定目标注册事件包括:
根据所述预选注册事件对应的参数与所述目标参数之间的继承路径,计算所述预选注册事件对应的路径深度,所述预选注册事件的路径深度为所述预选注册事件中各参数与所述目标参数之间的继承路径中包含的层级数量的总和;
确定目标注册事件,所述目标注册事件为路径深度最小的所述预选注册事件。
4.根据权利要求1所述的方法,其特征在于,所述获取所述待处理事件的调用方法,利用所述调用方法处理所述待处理事件,以响应用户通过所述操作页面向系统发出的所述请求包括:
获取所述待处理事件的类字节码,所述类字节码用于唯一标识所述待处理事件,所述类字节码与所述待处理事件的调用方法一一对应;
根据所述类字节码确定对应的调用方法,并利用所述调用方法处理所述类字节码标识的所述待处理事件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述注册事件列表中不存在目标注册事件,则将所述待处理事件确定为目标注册事件,并由技术人员根据所述目标参数为所述待处理事件设计调用方法;
将所述待处理事件、所述待处理事件对应的方法名以及所述待处理事件对应的目标参数注册到所述事件注册列表中,以更新所述事件注册列表。
6.一种事件调用装置,其特征在于,所述装置包括:
待处理事件信息获取模块,用于获取待处理事件对应的方法名和目标参数,所述待处理事件为用户通过操作页面向系统发出的请求,所述方法名为处理所述待处理事件的函数方法的名称,所述目标参数为使用所述函数方法处理所述待处理事件时所需的参数;
预选注册事件确定模块,用于根据所述方法名和所述目标参数从事件注册列表中确定所述待处理事件对应的预选注册事件,其中,所述事件注册列表包括注册事件、所述注册事件对应的方法名以及所述注册事件对应的参数;所述预选注册事件为在所述事件注册列表中,与所述待处理事件具有相同方法名和相匹配参数的注册事件;
目标注册事件确定模块,用于从各所述预选注册事件中确定目标注册事件,所述目标注册事件为所述预选注册事件中具有最短继承路径的一个,所述继承路径为由所述目标参数与所述预选注册事件的参数之间通过继承关系形成的层级结构;
调用方法确定模块,用于获取所述待处理事件的调用方法,利用所述调用方法处理所述待处理事件,以响应用户通过所述操作页面向系统发出的所述请求,其中,所述调用方法为利用与所述目标注册事件的方法名对应的函数方法按照所述最短继承路径依次调用所述目标注册事件的参数的操作。
7.根据权利要求6所述的装置,其特征在于,所述预选注册事件确定模块包括:
目标方法名确定模块,用于根据所述方法名从所述事件注册列表中获取待选注册事件,所述待选注册事件为具有与所述方法名相同的方法名的注册事件;
待选注册事件获取模块,用于获取所述目标参数的参数继承路径,所述目标参数的参数继承路径用于表示所述目标参数与其它参数之间的继承关系;
参数获取模块,用于从所述事件注册列表中获取每一所述待选注册事件对应的参数;
第一获取模块,用于获取每一所述待选注册事件对应的参数与所述目标参数之间的继承路径;
第一确定模块,用于从所述待选注册事件中确定预选注册事件,所述预选注册事件为对应的参数与所述目标参数之间的继承路径被所述目标参数的参数继承路径覆盖的待选注册事件。
8.根据权利要求7所述的装置,其特征在于,所述目标注册事件确定模块包括:
路径深度计算模块,用于根据所述预选注册事件对应的参数与所述目标参数之间的继承路径,计算所述预选注册事件对应的路径深度,所述预选注册事件的路径深度为所述预选注册事件中各参数与所述目标参数之间的继承路径中包含的层级数量的总和;
第二确定模块,用于确定目标注册事件,所述目标注册事件为路径深度最小的所述预选注册事件。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
类字节码获取模块,用于获取所述待处理事件的类字节码,所述类字节码用于唯一标识所述待处理事件,所述类字节码与所述待处理事件的调用方法一一对应;
反馈模块,用于根据所述类字节码确定对应的调用方法,并利用所述调用方法处理所述类字节码标识的所述待处理事件。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三确定模块,用于如果所述注册事件列表中不存在目标注册事件,则将所述待处理事件确定为目标注册事件,并由技术人员根据所述目标参数为所述待处理事件设计调用方法;
更新模块,用于将所述待处理事件、所述待处理事件对应的方法名以及所述待处理事件对应的目标参数注册到所述事件注册列表中,以更新所述事件注册列表。
11.一种电子设备,应用于开发端,其特征在于,所述电子设备包括:
处理器,以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-5任一所述的事件调用方法。
12.一种计算机可读存储介质,应用于开发端,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一所述的事件调用方法。
CN202010353304.1A 2020-04-29 2020-04-29 事件调用方法、装置、电子设备及存储介质 Active CN111596975B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010353304.1A CN111596975B (zh) 2020-04-29 2020-04-29 事件调用方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010353304.1A CN111596975B (zh) 2020-04-29 2020-04-29 事件调用方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111596975A true CN111596975A (zh) 2020-08-28
CN111596975B CN111596975B (zh) 2021-07-16

Family

ID=72182396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010353304.1A Active CN111596975B (zh) 2020-04-29 2020-04-29 事件调用方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111596975B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605527A (zh) * 2013-12-06 2014-02-26 普元信息技术股份有限公司 实现云计算应用间界面集成和统一样式展现的系统及方法
CN105094811A (zh) * 2015-06-29 2015-11-25 安一恒通(北京)科技有限公司 一种事件处理的方法和装置
CN106598751A (zh) * 2016-10-31 2017-04-26 武汉斗鱼网络科技有限公司 通过事件总线分发事件的方法及系统
US20170161089A1 (en) * 2015-12-03 2017-06-08 International Business Machines Corporation Application-level processor parameter management
CN107038117A (zh) * 2017-03-23 2017-08-11 北京工业大学 一种基于事件处理函数间定义‑引用的web自动化测试方法
CN110865889A (zh) * 2018-08-27 2020-03-06 北京高绎信息技术有限公司 组件间传递事件的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605527A (zh) * 2013-12-06 2014-02-26 普元信息技术股份有限公司 实现云计算应用间界面集成和统一样式展现的系统及方法
CN105094811A (zh) * 2015-06-29 2015-11-25 安一恒通(北京)科技有限公司 一种事件处理的方法和装置
US20170161089A1 (en) * 2015-12-03 2017-06-08 International Business Machines Corporation Application-level processor parameter management
CN106598751A (zh) * 2016-10-31 2017-04-26 武汉斗鱼网络科技有限公司 通过事件总线分发事件的方法及系统
CN107038117A (zh) * 2017-03-23 2017-08-11 北京工业大学 一种基于事件处理函数间定义‑引用的web自动化测试方法
CN110865889A (zh) * 2018-08-27 2020-03-06 北京高绎信息技术有限公司 组件间传递事件的方法和装置

Also Published As

Publication number Publication date
CN111596975B (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN108900353B (zh) 故障告警方法及终端设备
CN109597853B (zh) 业务场景元素序列号生成方法、装置、介质和计算机设备
US20130132354A1 (en) Multiple source data management using a conflict rule
CN111158741B (zh) 监控业务模块对第三方类库依赖关系变化的方法及装置
US20110191304A1 (en) System and method for export and import of metadata located in metadata registries
US20090150859A1 (en) Dynamic validation of models using constraint targets
CN110032568B (zh) 数据结构的读取及更新方法、装置、电子设备
CN114925084B (zh) 分布式事务处理方法、系统、设备及可读存储介质
CN111125106B (zh) 一种跑批任务执行方法、装置、服务器和存储介质
CN111694638A (zh) 规则包加载方法、规则包执行方法及终端设备
WO2019223136A1 (zh) 数据获取方法、装置、计算机设备以及存储介质
CN111596975B (zh) 事件调用方法、装置、电子设备及存储介质
US20070283368A1 (en) Artifact management for an extensible runtime environment
CN116204540A (zh) 操作日志记录方法、装置、设备及存储介质
CN108959548B (zh) 业务请求的处理方法及装置
CN114997111B (zh) 业务处理方法、装置、计算机设备和存储介质
CN111192088B (zh) 积分的结算对象确定方法及装置和计算机可读存储介质
US7792921B2 (en) Metadata endpoint for a generic service
CN109634500B (zh) 一种用户资料填写方法、装置、终端设备及存储介质
CN108363614B (zh) 一种应用的业务模块管理方法、装置及服务器
CN115879895B (zh) 协议准入方法、装置、计算机设备和存储介质
CN114238292B (zh) 数据清洗方法、装置、计算机设备、计算机可读存储介质
CN111507566A (zh) 物品生产单的生成方法、装置、计算机设备和存储介质
CN115373995A (zh) 一种埋点管理方法、装置、电子设备及存储介质
CN115827197A (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