发明内容
根据本发明的消息处理方法,包括:
获取消息标识;
基于消息标识从消息处理查找表中查找对应的消息处理操作;
执行消息处理操作。
根据本发明的消息处理方法,还包括:
在消息处理查找表中预先存储、增加、删除或修改消息标识与消息处理操作之间的对应关系。
根据本发明的消息处理方法,在基于消息标识从消息处理查找表中查找对应的消息处理操作的步骤中:
将消息标识作为B树中的节点的关键字,以实现快速查找功能。
根据本发明的消息处理方法,其消息标识根据下列中的至少一项唯一地确定:消息类型、事件类型、事件KEY值。
根据本发明的消息处理装置,包括:
接收模块,用于获取消息标识;
查找模块,用于基于消息标识从消息处理查找表中查找对应的消息处理操作;
执行模块,用于执行消息处理操作。
根据本发明的消息处理装置,还包括:
接口模块,用于在消息处理查找表中预先存储、增加、删除或修改消息标识与消息处理操作之间的对应关系。
根据本发明的消息处理装置,其查找模块还用于:
将消息标识作为B树中的节点的关键字,以实现快速查找功能。
根据本发明的消息处理装置,其消息标识根据下列中的至少一项唯一地确定:消息类型、事件类型、事件KEY值。
根据本发明的计算机可读存储介质,存储介质上存储有计算机程序,程序被处理器执行时实现上文所述方法的步骤。
根据本发明的计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上文所述方法的步骤。
根据本发明的上述技术方案,能够将多次判断操作变为1次查找操作,减少了处理时延。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图2示例性地示出了根据本发明的消息处理方法的示意流程图。
如图2的实线框所示,根据本发明的消息处理方法包括:
步骤S202:获取消息标识;
步骤S204:基于消息标识从消息处理查找表中查找对应的消息处理操作;
步骤S206:执行消息处理操作。
例如,当采用根据本发明的上述方法处理图1所示的微信公众平台消息时,可以为A消息、B消息、C消息分别设置唯一的消息标识,并且使每个消息标识对应唯一的消息处理操作。例如,消息标识msg_A对应于消息处理操作func_A、消息标识msg_B对应于消息处理操作func_B、消息标识msg_C对应于消息处理操作func_C。
通过这种方法,将图1中原先处理C消息时所需要进行的3次判断操作、处理B消息时所需要进行的2次判断操作都简化为了1次查找操作,减少了处理时延。
可选地,如图2的虚线框所示,根据本发明的消息处理方法,还包括:
步骤S202’:在消息处理查找表中预先存储、增加、删除或修改消息标识与消息处理操作之间的对应关系。
例如,消息标识与消息处理操作(即,消息处理逻辑)之间存在一一对应的映射关系。
可选地,根据本发明的消息处理方法,在步骤S204中:
将消息标识作为B树中的节点的关键字,以实现快速查找功能。
例如,如本领域技术人员所了解的,假设B树包含N个关键字,因此有N+1个叶子结点,叶子都在第I层。因为根至少有两个孩子,因此第二层至少有两个结点。除根和叶子外,其它结点至少有┌m/2┐个孩子,因此在第三层至少有2*┌m/2┐个结点,在第四层至少有2*(┌m/2┐^2)个结点,…,在第I层至少有2*(┌m/2┐^(I-2))个结点,于是有:
N+1≥2*(┌m/2┐^(I-2)),即I≤log┌m/2┐((N+1)/2)+2
所以,当B树包含N个关键字时,B树的最大高度为I-1(因为计算B树高度时,叶结点所在层不计算在内),即,B树的最大高度为log┌m/2┐((N+1)/2)+1。
这保证了B树的查找效率高。
可选地,根据本发明的消息处理方法,其消息标识根据下列中的至少一项唯一地确定:消息类型、事件类型、事件KEY值(事件的属性值,例如,事件ID、事件发生的时刻、持续时间等)。
例如,触发消息处理逻辑的条件(消息类型和/或事件类型和/或事件KEY值)与消息标识之间也存在一一对应的映射关系。从而保证了触发消息处理逻辑的条件与消息处理操作(即,消息处理逻辑)之间也存在一一对应的映射关系。
图3示例性地示出了根据本发明的消息处理装置300的示意框图。
如图3的实线框所示,根据本发明的消息处理装置300包括:
接收模块301,用于获取消息标识;
查找模块303,用于基于消息标识从消息处理查找表中查找对应的消息处理操作;
执行模块305,用于执行消息处理操作。
可选地,如图3的虚线框所示,消息处理装置300还包括:
接口模块307,用于在消息处理查找表中预先存储、增加、删除或修改消息标识与消息处理操作之间的对应关系。
可选地,查找模块303还用于:
将消息标识作为B树中的节点的关键字,以实现快速查找功能。
可选地,其消息标识根据下列中的至少一项唯一地确定:消息类型、事件类型、事件KEY值。
结合上述技术方案,本发明还提出了一种计算机可读存储介质,存储介质上存储有计算机程序,程序被处理器执行时实现上述方法的步骤。
结合上述技术方案,本发明还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法的步骤。
根据本发明的上述技术方案,具有以下优点:
1、能够将多次判断操作变为1次查找操作(例如,减少了对微信公众平台消息类型的复杂判断),避免了随着业务的不断扩展,微信公众平台处理针对消息的上述多重条件判断操作变得异常复杂,时延也会随着消息类型、和/或事件类型、和/或事件KEY值的增多而不断增大的问题,从而减少了处理时延,提高服务器速度。
2、通过进一步采用B树查找的方法,进一步减小了1次查找所需要的时延。
3、逻辑简单直观,维护人员排查问题时效率高,降低了服务器后期维护的成本。
上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的精神和范围。