CN106911784B - 一种执行异步事件的方法和装置 - Google Patents
一种执行异步事件的方法和装置 Download PDFInfo
- Publication number
- CN106911784B CN106911784B CN201710120873.XA CN201710120873A CN106911784B CN 106911784 B CN106911784 B CN 106911784B CN 201710120873 A CN201710120873 A CN 201710120873A CN 106911784 B CN106911784 B CN 106911784B
- Authority
- CN
- China
- Prior art keywords
- asynchronous event
- asynchronous
- event
- client
- request
- 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
Images
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/14—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种执行异步事件的方法和装置,基于主进程中对应的客户端的请求,立即向该客户端返回与所述请求对应的响应,同时,在主进程之外,异步申明与该请求对应的至少一个异步事件,并监听该至少一个异步事件,从而在注册中心查找对应的类或方法并进行执行,使得在快速、高效地响应客户端请求的同时,异步执行相应的异步事件,提升客户端用户的使用体验。与现有技术相比,本发明提供了一种统一的集成机制,开发者仅需按照框架模板填写即可,方便快捷,同时框架统一,方便集成,采用同样的协议和规范,使得数据关联性更强;通过全局注册,使得对外打通对接更为便捷,实现高效地集成现有的资源。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种执行异步事件的技术。
背景技术
在分布式系统中,多个服务器集群通过分布式消息队列实现异步。服务器异步消息是典型的生产者消费者模式,生产者往消息队列中发消息,消费者从消息队列中取消息。这种结构带来的优势是提供系统可用性,消除并发访问高峰,加快网站响应速度。
对于业务扩张的时期,采用异步消息结构可以带来网站响应速度。对于一个要处理十分复杂的业务逻辑的接口,开发人员可以将不影响接口返回数据的业务逻辑放到异步事件中处理,提高接口的响应速度。此外,系统中有多个模块,不同服务器上每个开发人员负责不同模块,需要重复很多设计工作,使得整个业务系统割裂,目前的系统格式不统一,实现效果不可控。
因此,如何高效执行异步事件,成为本领域技术人员亟需解决的问题之一。
发明内容
本发明的目的是提供一种执行异步事件的方法和装置。
根据本发明的一个方面,提供了一种执行异步事件的方法,其中,该方法包括:
a基于主进程中对应的客户端的请求,立即向所述客户端返回与所述请求对应的响应;
b在所述主进程之外,异步申明与所述请求对应的至少一个异步事件,并监听所述至少一个异步事件;
c根据所述至少一个异步事件,在注册中心查找对应的类或方法并进行执行。
优选地,所述步骤c包括:
根据所述异步事件的事件名及其所在模块的模块名,在所述注册中心查找对应的类或方法并进行执行。
更优选地,该方法还包括:
根据异步事件及其所在模块所对应的事件名和模块名,在所述注册中心进行全局注册,其中,经全局注册后的模块对外具有统一的集成方式。
优选地,各个异步事件具有对应的开关,所述开关定义所述异步事件在注册中心的插拔。
优选地,该方法还包括:
根据对所述类或方法的执行,获得对应的所述异步事件的执行结果;
将所述执行结果提供给所述客户端。
根据本发明的另一个方面,还提供了一种执行异步事件的装置,其中,该装置包括:
响应装置,用于基于主进程中对应的客户端的请求,立即向所述客户端返回与所述请求对应的响应;
申明装置,用于在所述主进程之外,异步申明与所述请求对应的至少一个异步事件,并监听所述至少一个异步事件;
执行装置,用于根据所述至少一个异步事件,在注册中心查找对应的类或方法并进行执行。
优选地,所述执行装置用于:
根据所述异步事件的事件名及其所在模块的模块名,在所述注册中心查找对应的类或方法并进行执行。
更优选地,该装置还包括:
注册装置,用于根据异步事件及其所在模块所对应的事件名和模块名,在所述注册中心进行全局注册,其中,经全局注册后的模块对外具有统一的集成方式。
优选地,各个异步事件具有对应的开关,所述开关定义所述异步事件在注册中心的插拔。
优选地,该装置还包括提供装置,用于:
根据对所述类或方法的执行,获得对应的所述异步事件的执行结果;
将所述执行结果提供给所述客户端。
根据本发明的又一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
根据本发明的再一个方面,还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
根据本发明的再一个方面,还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
与现有技术相比,本发明基于主进程中对应的客户端的请求,立即向该客户端返回与所述请求对应的响应,同时,在主进程之外,异步申明与该请求对应的至少一个异步事件,并监听该至少一个异步事件,从而在注册中心查找对应的类或方法并进行执行,使得在快速、高效地响应客户端请求的同时,异步执行相应的异步事件,提升客户端用户的使用体验。
由于现有的异步事件的处理可能背后的代码各式各样,或者,对于多个异步事件,开发者分次写代码,异步事件多、代码散乱,而本发明提供了一种统一的集成机制,开发者仅需按照框架模板填写即可,方便快捷,同时框架统一,方便集成,采用同样的协议和规范,不管是自己开发,还是对外开放,都提供了便利,使得数据关联性更强;此外,由于业务系统有很多关联关系,例如,发汇报/发外勤/日程提醒等都需要与其他模块打通,本发明通过全局注册,使得对外打通对接更为便捷,实现高效地集成现有的资源。
进一步地,本发明通过开关来定义异步事件在注册中心的插拔,更有利于开发者的使用体验。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的一种执行异步事件的装置的结构示意图;
图2示出根据本发明另一个方面的一种执行异步事件的方法的流程示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个方面的一种执行异步事件的装置的结构示意图。该装置1包括响应装置101、申明装置102和执行装置103。
其中,响应装置101基于主进程中对应的客户端的请求,立即向所述客户端返回与所述请求对应的响应。
具体地,客户端请求了某个事件,则在主进程中可立即对该事件进行响应,响应装置101在主进程中,基于该客户端的请求,立即向该客户端返回与该请求对应的响应,例如,假设客户端请求了某个外勤事件,则在主进程中,响应装置101为该客户发了一个外勤,立即向该客户端反馈外勤发送成功,由此,客户端可以立即获得响应,对于使用该客户端的用户获得较好的用户使用体验。
申明装置102在所述主进程之外,异步申明与所述请求对应的至少一个异步事件,并监听所述至少一个异步事件。
具体地,在主进程之外,装置1可以执行与该请求对应的其他异步事件,例如,该装置1中的申明装置102,在该主进程之外,异步申明与所述请求对应的至少一个异步事件,并监听该至少一个异步事件。如上例中,主进程中,响应装置101立即基于请求向客户端反馈外勤发送成功;同时,在主进程之外,申明装置102异步申明与该请求对应的至少一个异步事件,如异步申明一个异步事件“给客户添加一条跟进记录”,其实际需要游说转化客户,并监听该异步事件。
执行装置103根据所述至少一个异步事件,在注册中心查找对应的类或方法并进行执行。
具体地,执行装置103根据申明装置102所申明的至少一个异步事件,在注册中心查找对应的类或方法,并执行该类或方法。如上例中,主进程中,响应装置101立即基于请求向客户端反馈外勤发送成功;同时,在主进程之外,申明装置102异步申明与该请求对应的至少一个异步事件,如异步申明一个异步事件“给客户添加一条跟进记录”,并监听该异步事件;随后,执行装置103根据该异步事件“给客户添加一条跟进记录”,在注册中心查找对应的类或方法,如根据该异步事件在注册中心的客户关系管理系统中查找到了对应的被注册后的方法,该方法如记录为客户名下的一条相关跟进记录,该执行装置103即可以执行该方法。
在此,在注册中心中查找异步事件对应的类或方法,其是一个临时的线程,不干扰主进程的一个异步过程。
在此,装置1基于主进程中对应的客户端的请求,立即向该客户端返回与所述请求对应的响应,同时,在主进程之外,异步申明与该请求对应的至少一个异步事件,并监听该至少一个异步事件,从而在注册中心查找对应的类或方法并进行执行,使得在快速、高效地响应客户端请求的同时,异步执行相应的异步事件,提升客户端用户的使用体验。
优选地,所述执行装置103根据所述异步事件的事件名及其所在模块的模块名,在所述注册中心查找对应的类或方法并进行执行。
具体地,由于不同模块中异步事件的事件名可能存在相同的情况,如果仅仅根据事件名去注册中心查找,则可能会基于同一个事件名而查找到不同模块对应的类或方法,因此,执行装置103根据异步事件的事件名及其所在模块的模块名,在所述注册中心查找对应的类或方法并进行执行。
在此,该注册中心中存储了大量异步事件及其对应的类或方法的映射关系,其可以由异步事件的开发者进行注册。
更优选地,该装置1还包括注册装置(未示出)。该注册装置根据异步事件及其所在模块所对应的事件名和模块名,在所述注册中心进行全局注册,其中,经全局注册后的模块对外具有统一的集成方式。
具体地,异步服务的开发者,完成对异步事件及其对应的执行方法的开发后,联系注册中心,例如通过预定的模板上传异步事件及其事件名、该异步事件所在模块所对应的模块名、该异步事件对应的类或方法等,注册装置根据异步事件及其所在模块所对应的事件名和模块名,在注册中心进行全局注册。
例如,若异步服务的开发者是主服务内部开发者,则开发者完成对异步事件及其对应的执行方法的开发后,联系注册中心,随后,注册装置为异步事件指定执行方法,此执行方法可以是类和方法的实例。
若异步服务的开发者是第三方服务开发者,则开发者完成对异步事件及其对应的执行方法的开发后,联系注册中心,注册装置还可以检查异步事件的事件名是否在注册中心有重复注册。若该异步事件的事件名有重名情况,则在注册前要进行事件名矫正,本着对第三方服务开发者便利的原则,注册装置会为每个第三方服务生成唯一内部编号,该唯一内部编号作为前缀添加进异步事件的事件名,完成事件名矫正,此矫正过程对第三方服务开发者无感知影响。这样,注册中心内部查找异步事件时也可采用该唯一内部编号。随后,注册装置为异步事件指定执行方法,例如可以通过网络接收第三方服务开发者所远程传输和解析的序列化后的数据。
在此,重复注册的情况往往出现在第三方服务向某个主服务的集成时,因为第三方服务开发者所要注册的异步事件的事件名是模块名加事件名,有一定可能与其它第三方服务开发者的命名出现重名的情况。而主服务内部开发者在使用这套全局注册机制时,往往通过代码校验或者内部协调,已提前规避此问题。
在此,对于异步服务的开发者是第三方服务开发者的情况,注册中心可以提供统一的集成机制,例如提供统一的模板供第三方来填写具体的异步事件及其对应的类或方法并进行提交,该注册中心相当于主服务来集成第三方所要提交的服务,即异步事件与对应的类或方法,对于第三方来讲,其只关注什么样的异步事件以及该异步事件是否解决,具体的则由注册中心处理。
由于现有的异步事件的处理可能背后的代码各式各样,或者,对于多个异步事件,开发者分次写代码,异步事件多、代码散乱,而在此,装置1提供了一种统一的集成机制,开发者仅需按照框架模板填写即可,方便快捷,同时框架统一,方便集成,采用同样的协议和规范,不管是自己开发,还是对外开放,都提供了便利,使得数据关联性更强;此外,由于业务系统有很多关联关系,例如,发汇报/发外勤/日程提醒等都需要与其他模块打通,在此,装置1通过全局注册,使得对外打通对接更为便捷,实现高效地集成现有的资源。
优选地,各个异步事件具有对应的开关,所述开关定义所述异步事件在注册中心的插拔。
具体地,由于异步服务的开发者可能想在短期内撤掉某个异步事件在注册中心的注册,但又不想完全注销该异步事件,这样,可以为各个异步事件设置有对应的开关,所述开关定义所述异步事件在注册中心的插拔。例如,若异步服务的开发者想在注册中心短期内撤掉某个异步事件,则该异步服务的开发者可以利用该异步事件对应的开关,撤掉该异步事件在注册中心中与对应的类或方法的映射关系,等到该异步服务的开发者哪天重新需要该异步事件时,其不需要在注册中心重新注册,而仅需要通过该开关,在注册中心重新插上该异步事件与其对应的类或方法的映射关系即可。在此,通过该开关定义异步事件在注册中心的插拔是一个动态的过程。
在此,装置1通过开关来定义异步事件在注册中心的插拔,更有利于开发者的使用体验。
优选地,该装置1还包括提供装置(未示出),该提供装置根据对所述类或方法的执行,获得对应的所述异步事件的执行结果;将所述执行结果提供给所述客户端。
具体地,根据执行装置103对异步事件所对应的类或方法的执行,提供装置获得对应的所述异步事件的执行结果,随后,该提供装置将该执行结果通过约定的提供方式,如通过JSP、PHP或ASP等动态页面技术,提供给所述客户端。
例如,主进程中,响应装置101立即基于外勤请求向客户端反馈外勤发送成功;同时,在主进程之外,申明装置102异步申明与该请求对应的一个异步事件“给客户添加一条跟进记录”,并监听该异步事件;随后,执行装置103根据该异步事件“给客户添加一条跟进记录”,在注册中心查找对应的类或方法,如根据该异步事件在注册中心的客户关系管理系统中查找到了对应的被注册后的方法,该方法如记录为客户名下的一条相关跟进记录,该执行装置103即可以执行该方法;接着,提供装置例如通过约定的提供方式,在该客户端的结果页面中,将该相关跟进记录提供给客户端对应的用户。
图2示出根据本发明另一个方面的一种执行异步事件的方法的流程示意图。
在步骤S201中,装置1基于主进程中对应的客户端的请求,立即向所述客户端返回与所述请求对应的响应。
具体地,客户端请求了某个事件,则在主进程中可立即对该事件进行响应,在步骤S201中,装置1在主进程中,基于该客户端的请求,立即向该客户端返回与该请求对应的响应,例如,假设客户端请求了某个外勤事件,则在主进程中,在步骤S201中,装置1为该客户发了一个外勤,立即向该客户端反馈外勤发送成功,由此,客户端可以立即获得响应,对于使用该客户端的用户获得较好的用户使用体验。
在步骤S202中,装置1在所述主进程之外,异步申明与所述请求对应的至少一个异步事件,并监听所述至少一个异步事件。
具体地,在主进程之外,装置1可以执行与该请求对应的其他异步事件,例如,在步骤S202中,装置1在该主进程之外,异步申明与所述请求对应的至少一个异步事件,并监听该至少一个异步事件。如上例中,主进程中,在步骤S201中,装置1立即基于请求向客户端反馈外勤发送成功;同时,在主进程之外,在步骤S202中,装置1异步申明与该请求对应的至少一个异步事件,如异步申明一个异步事件“给客户添加一条跟进记录”,其实际需要游说转化客户,并监听该异步事件。
在步骤S203中,装置1根据所述至少一个异步事件,在注册中心查找对应的类或方法并进行执行。
具体地,在步骤S203中,装置1根据在步骤S202中所申明的至少一个异步事件,在注册中心查找对应的类或方法,并执行该类或方法。如上例中,主进程中,在步骤S201中,装置1立即基于请求向客户端反馈外勤发送成功;同时,在主进程之外,在步骤S202中,装置1异步申明与该请求对应的至少一个异步事件,如异步申明一个异步事件“给客户添加一条跟进记录”,并监听该异步事件;随后,在步骤S203中,装置1根据该异步事件“给客户添加一条跟进记录”,在注册中心查找对应的类或方法,如根据该异步事件在注册中心的客户关系管理系统中查找到了对应的被注册后的方法,该方法如记录为客户名下的一条相关跟进记录,该在步骤S203中,装置1即可以执行该方法。
在此,在注册中心中查找异步事件对应的类或方法,其是一个临时的线程,不干扰主进程的一个异步过程。
在此,装置1基于主进程中对应的客户端的请求,立即向该客户端返回与所述请求对应的响应,同时,在主进程之外,异步申明与该请求对应的至少一个异步事件,并监听该至少一个异步事件,从而在注册中心查找对应的类或方法并进行执行,使得在快速、高效地响应客户端请求的同时,异步执行相应的异步事件,提升客户端用户的使用体验。
优选地,在步骤S203中,装置1根据所述异步事件的事件名及其所在模块的模块名,在所述注册中心查找对应的类或方法并进行执行。
具体地,由于不同模块中异步事件的事件名可能存在相同的情况,如果仅仅根据事件名去注册中心查找,则可能会基于同一个事件名而查找到不同模块对应的类或方法,因此,在步骤S203中,装置1根据异步事件的事件名及其所在模块的模块名,在所述注册中心查找对应的类或方法并进行执行。
在此,该注册中心中存储了大量异步事件及其对应的类或方法的映射关系,其可以由异步事件的开发者进行注册。
更优选地,该方法还包括步骤S204(未示出)。在步骤S204中,装置1根据异步事件及其所在模块所对应的事件名和模块名,在所述注册中心进行全局注册,其中,经全局注册后的模块对外具有统一的集成方式。
具体地,异步服务的开发者,完成对异步事件及其对应的执行方法的开发后,联系注册中心,例如通过预定的模板上传异步事件及其事件名、该异步事件所在模块所对应的模块名、该异步事件对应的类或方法等,在步骤S204中,装置1根据异步事件及其所在模块所对应的事件名和模块名,在注册中心进行全局注册。
例如,若异步服务的开发者是主服务内部开发者,则开发者完成对异步事件及其对应的执行方法的开发后,联系注册中心,随后,在步骤S204中,装置1为异步事件指定执行方法,此执行方法可以是类和方法的实例。
若异步服务的开发者是第三方服务开发者,则开发者完成对异步事件及其对应的执行方法的开发后,联系注册中心,在步骤S204中,装置1还可以检查异步事件的事件名是否在注册中心有重复注册。若该异步事件的事件名有重名情况,则在注册前要进行事件名矫正,本着对第三方服务开发者便利的原则,在步骤S204中,装置1会为每个第三方服务生成唯一内部编号,该唯一内部编号作为前缀添加进异步事件的事件名,完成事件名矫正,此矫正过程对第三方服务开发者无感知影响。这样,注册中心内部查找异步事件时也可采用该唯一内部编号。随后,在步骤S204中,装置1为异步事件指定执行方法,例如可以通过网络接收第三方服务开发者所远程传输和解析的序列化后的数据。
在此,重复注册的情况往往出现在第三方服务向某个主服务的集成时,因为第三方服务开发者所要注册的异步事件的事件名是模块名加事件名,有一定可能与其它第三方服务开发者的命名出现重名的情况。而主服务内部开发者在使用这套全局注册机制时,往往通过代码校验或者内部协调,已提前规避此问题。
在此,对于异步服务的开发者是第三方服务开发者的情况,注册中心可以提供统一的集成机制,例如提供统一的模板供第三方来填写具体的异步事件及其对应的类或方法并进行提交,该注册中心相当于主服务来集成第三方所要提交的服务,即异步事件与对应的类或方法,对于第三方来讲,其只关注什么样的异步事件以及该异步事件是否解决,具体的则由注册中心处理。
由于现有的异步事件的处理可能背后的代码各式各样,或者,对于多个异步事件,开发者分次写代码,异步事件多、代码散乱,而在此,装置1提供了一种统一的集成机制,开发者仅需按照框架模板填写即可,方便快捷,同时框架统一,方便集成,采用同样的协议和规范,不管是自己开发,还是对外开放,都提供了便利,使得数据关联性更强;此外,由于业务系统有很多关联关系,例如,发汇报/发外勤/日程提醒等都需要与其他模块打通,在此,装置1通过全局注册,使得对外打通对接更为便捷,实现高效地集成现有的资源。
优选地,各个异步事件具有对应的开关,所述开关定义所述异步事件在注册中心的插拔。
具体地,由于异步服务的开发者可能想在短期内撤掉某个异步事件在注册中心的注册,但又不想完全注销该异步事件,这样,可以为各个异步事件设置有对应的开关,所述开关定义所述异步事件在注册中心的插拔。例如,若异步服务的开发者想在注册中心短期内撤掉某个异步事件,则该异步服务的开发者可以利用该异步事件对应的开关,撤掉该异步事件在注册中心中与对应的类或方法的映射关系,等到该异步服务的开发者哪天重新需要该异步事件时,其不需要在注册中心重新注册,而仅需要通过该开关,在注册中心重新插上该异步事件与其对应的类或方法的映射关系即可。在此,通过该开关定义异步事件在注册中心的插拔是一个动态的过程。
在此,装置1通过开关来定义异步事件在注册中心的插拔,更有利于开发者的使用体验。
优选地,该方法还包括步骤S205(未示出),在步骤S205中,装置1根据对所述类或方法的执行,获得对应的所述异步事件的执行结果;将所述执行结果提供给所述客户端。
具体地,根据在步骤S203装置1对异步事件所对应的类或方法的执行,在步骤S205中,装置1获得对应的所述异步事件的执行结果,随后,在步骤S205中,装置1将该执行结果通过约定的提供方式,如通过JSP、PHP或ASP等动态页面技术,提供给所述客户端。
例如,主进程中,在步骤S201中,装置1立即基于外勤请求向客户端反馈外勤发送成功;同时,在主进程之外,在步骤S202中,装置1异步申明与该请求对应的一个异步事件“给客户添加一条跟进记录”,并监听该异步事件;随后,在步骤S203中,装置1根据该异步事件“给客户添加一条跟进记录”,在注册中心查找对应的类或方法,如根据该异步事件在注册中心的客户关系管理系统中查找到了对应的被注册后的方法,该方法如记录为客户名下的一条相关跟进记录,在步骤S203中,装置1即可以执行该方法;接着,在步骤S205中,装置1例如通过约定的提供方式,在该客户端的结果页面中,将该相关跟进记录提供给客户端对应的用户。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本发明还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本发明还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (12)
1.一种执行异步事件的方法,其中,该方法包括:
a基于主进程中对应的客户端的请求,立即向所述客户端返回与所述请求对应的响应;
b在所述主进程之外,异步申明与所述请求对应的至少一个异步事件,并监听所述至少一个异步事件;
c根据所述至少一个异步事件,在注册中心查找对应的类或方法并进行执行。
2.根据权利要求1 所述的方法,其中,所述步骤c包括:
根据所述异步事件的事件名及其所在模块的模块名,在所述注册中心查找对应的类或方法并进行执行。
3.根据权利要求2所述的方法,其中,该方法还包括:
根据异步事件及其所在模块所对应的事件名和模块名,在所述注册中心进行全局注册,其中,经全局注册后的模块对外具有统一的集成方式。
4.根据权利要求1至3中任一项所述的方法,其中,各个异步事件具有对应的开关,所述开关定义所述异步事件在注册中心的插拔。
5.根据权利要求1所述的方法,其中,该方法还包括:
根据对所述类或方法的执行,获得对应的所述异步事件的执行结果;
将所述执行结果提供给所述客户端。
6.一种执行异步事件的装置,其中,该装置包括:
响应装置,用于基于主进程中对应的客户端的请求,立即向所述客户端返回与所述请求对应的响应;
申明装置,用于在所述主进程之外,异步申明与所述请求对应的至少一个异步事件,并监听所述至少一个异步事件;
执行装置,用于根据所述至少一个异步事件,在注册中心查找对应的类或方法并进行执行。
7.根据权利要求6所述的装置,其中,所述执行装置用于:
根据所述异步事件的事件名及其所在模块的模块名,在所述注册中心查找对应的类或方法并进行执行。
8.根据权利要求7所述的装置,其中,该装置还包括:
注册装置,用于根据异步事件及其所在模块所对应的事件名和模块名,在所述注册中心进行全局注册,其中,经全局注册后的模块对外具有统一的集成方式。
9.根据权利要求6至8中任一项所述的装置,其中,各个异步事件具有对应的开关,所述开关定义所述异步事件在注册中心的插拔。
10.根据权利要求6所述的装置,其中,该装置还包括提供装置,用于:
根据对所述类或方法的执行,获得对应的所述异步事件的执行结果;
将所述执行结果提供给所述客户端。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如权利要求1至5中任一项所述的方法被执行。
12.一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710120873.XA CN106911784B (zh) | 2017-03-02 | 2017-03-02 | 一种执行异步事件的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710120873.XA CN106911784B (zh) | 2017-03-02 | 2017-03-02 | 一种执行异步事件的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106911784A CN106911784A (zh) | 2017-06-30 |
CN106911784B true CN106911784B (zh) | 2020-12-18 |
Family
ID=59186454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710120873.XA Active CN106911784B (zh) | 2017-03-02 | 2017-03-02 | 一种执行异步事件的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106911784B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446143A (zh) * | 2018-02-28 | 2018-08-24 | 万惠投资管理有限公司 | 事件处理方法及装置 |
CN109669720B (zh) * | 2018-11-22 | 2022-05-10 | 北京字节跳动网络技术有限公司 | 基于Promise的链式异步请求处理方法、装置及电子设备 |
CN111949387B (zh) * | 2020-07-17 | 2022-08-23 | 上海淇馥信息技术有限公司 | 一种处理业务任务的方法、装置和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883108A (zh) * | 2010-06-29 | 2010-11-10 | 中兴通讯股份有限公司 | 动态认证的文件传输方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63138439A (ja) * | 1986-12-01 | 1988-06-10 | Hitachi Ltd | 分散データベースアクセス要求処理方法 |
US8429655B2 (en) * | 2005-04-29 | 2013-04-23 | Microsoft Corporation | System and method for asynchronous processing in page lifecycle |
CN100466556C (zh) * | 2007-03-30 | 2009-03-04 | 华为技术有限公司 | 一种网络设备管理的方法和系统 |
CN101374158B (zh) * | 2007-08-24 | 2011-12-28 | 国际商业机器公司 | 根据结果完成比例将缓存内容或处理内容递送给客户端 |
CN106034137A (zh) * | 2015-03-09 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 用于分布式系统的智能调度方法及分布式服务系统 |
CN106453288B (zh) * | 2016-09-29 | 2019-06-04 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
-
2017
- 2017-03-02 CN CN201710120873.XA patent/CN106911784B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883108A (zh) * | 2010-06-29 | 2010-11-10 | 中兴通讯股份有限公司 | 动态认证的文件传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106911784A (zh) | 2017-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN106059825A (zh) | 一种分布式系统及配置方法 | |
CN109522386B (zh) | 一种跨gis平台的空间信息服务生成方法和系统 | |
CN106911784B (zh) | 一种执行异步事件的方法和装置 | |
CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
CN109062699A (zh) | 一种资源监控方法、装置、服务器及存储介质 | |
CN109104491A (zh) | 一种微服务调用方法、装置、服务器及存储介质 | |
CN113238843B (zh) | 一种任务执行方法、装置、设备及存储介质 | |
KR20210083222A (ko) | 음성 데이터 처리 방법, 장치, 기기 및 저장매체 | |
CN103324479A (zh) | 松散环境下分布式大数据计算的中间件体系框架 | |
CN105373563B (zh) | 数据库切换方法及装置 | |
WO2016197853A1 (zh) | 一种基于复杂度的业务处理方法和装置 | |
CN108696559B (zh) | 流处理方法及装置 | |
CN110717992B (zh) | 调度模型的方法、装置、计算机系统和可读存储介质 | |
CN111835809B (zh) | 工单消息分配方法、装置、服务器及存储介质 | |
CN112202605A (zh) | 服务配置方法、装置、设备及存储介质 | |
CN112181724A (zh) | 大数据容灾方法、装置和电子设备 | |
CN110704099A (zh) | 联盟链的构建方法、装置和电子设备 | |
CN112825525A (zh) | 用于处理事务的方法和装置 | |
CN115576782A (zh) | 基于监听机制的交易处理方法及装置 | |
CN114356713A (zh) | 线程池监控方法、装置、电子设备及存储介质 | |
CN115617480A (zh) | 一种任务调度方法、装置、系统及存储介质 | |
CN111262727B (zh) | 服务的扩容方法、装置、设备及存储介质 | |
CN111190725B (zh) | 任务处理方法、装置、存储介质及服务器 | |
CN102253940B (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 |