CN108566291B - 一种事件处理的方法、服务器及*** - Google Patents
一种事件处理的方法、服务器及*** Download PDFInfo
- Publication number
- CN108566291B CN108566291B CN201810150232.3A CN201810150232A CN108566291B CN 108566291 B CN108566291 B CN 108566291B CN 201810150232 A CN201810150232 A CN 201810150232A CN 108566291 B CN108566291 B CN 108566291B
- Authority
- CN
- China
- Prior art keywords
- event
- identifier
- cache database
- shared cache
- upstream node
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种事件处理的方法、服务器及***,其中所述方法包括:接收下游***发送的事件信息,其中,所述事件信息包括事件标识;如果在预设的共享缓存数据库中没有查找到所述事件标识,则基于所述事件标识获取对应的事件状态信息;将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中。本发明实施例可以使得事件状态信息不存在任何一台上游节点中,而是统一存储在共享缓存中,实现了事件状态信息与上游节点的分离,使得本发明实施例能够应用于所有场景的状态信息。
Description
技术领域
本发明涉及电话数据处理领域,特别是涉及一种事件处理的方法、服务器及***。
背景技术
为了提升整体应用的可靠性,提升***的并发性能,在状态服务中,现有技术通常采用状态节点通讯粘性或者主备服务模式进行状态迁移,但上述两种方式分别存在以下不足:
针对状态节点通讯粘性的方式,状态节点分发一般是根据某一个特定的属性值做hash取余算法,唯一命中某一服务节点,而hash取余算法的分母就是应用节点的数量,所以在新增或减少应用节点时,对hash取余算法都有影响,使得节点无法扩容。另一方面,由于节点的数据保持在服务器的内存中,数据由节点本身维护,当应用节点故障时,内存数据随即消失,无法恢复。
针对主备服务模式的方式,通讯节点只在主服务上进行状态维护,当主节点出现故障时,备份节点立即启用,这种方案只能维持简单的场景状态逻辑,当遇上复杂的场景时,状态无法变更。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种事件处理的方法、服务器及***。
为了解决上述问题,本发明实施例公开了一种事件处理的方法,所述方法包括:
接收下游***发送的事件信息,其中,所述事件信息包括事件标识;
如果在预设的共享缓存数据库中没有查找到所述事件标识,则基于所述事件标识获取对应的事件状态信息;
将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中。
优选地,所述事件标识包括业务对象标识以及事件序号,在所述在预设的共享缓存数据库中没有查找到所述事件标识,则基于所述事件标识获取对应的事件状态信息之前,还包括:
在共享缓存数据库中查找所述业务对象标识以及事件序号;
若均查找到所述业务对象标识以及所述事件序号,则判定所述事件标识查找成功;
若查找到所述业务对象标识但没有查找到所述事件序号,或者,均没有查找到所述业务对象标识以及所述事件序号,则判定所述事件标识查找失败。
优选地,所述将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中,包括:
若均没有查找到所述业务对象标识以及所述事件序号,则将所述业务对象标识作为主键,所述事件序号以及所述事件状态信息作为所述主键对应的值,写入所述共享缓存数据库中;
若查找到所述业务对象标识但没有查找到所述事件序号,则将所述事件序号以及所述事件状态信息覆盖所述业务对象标识下的原有记录。
优选地,所述方法还包括:
若在预设的共享缓存数据库中查找到所述事件标识,或者,在所述将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中以后,则向所述下游***返回处理完成信息。
优选地,在所述接收下游***发送的事件信息的步骤之前,所述方法还包括:
向下游***发送订阅消息。
本发明实施例还公开了一种事件处理的方法,所述方法包括:
向第一上游节点发送事件信息,其中,所述事件信息包括事件标识;
若在预设时间段内没有接收到所述第一上游节点发送的处理完成消息,则将所述事件信息发送至第二上游节点;其中,所述处理完成消息为所述第一上游节点在预设的共享缓存数据库中没有查找到所述事件标识时,基于所述事件标识获取对应的事件状态信息,并将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中后生成的消息,或者,所述第一上游节点在预设的共享缓存数据库中查找到所述事件标识时生成的消息;
优选地,所述方法还包括:
接收新增节点的订阅消息;
基于所述订阅消息,向所述新增节点进行消息分发。
本发明实施例还公开了一种事件处理的服务器,所述服务器包括:
事件信息接收模块,用于接收下游***发送的事件信息,其中,所述事件信息包括事件标识;
事件状态信息获取模块,用于如果在预设的共享缓存数据库中没有查找到所述事件标识,则基于所述事件标识获取对应的事件状态信息;
信息写入模块,用于将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中。
本发明实施例还公开了一种事件处理的***,所述***包括:
事件信息发送模块,用于向第一上游节点发送事件信息,其中,所述事件信息包括事件标识;
重发模块,用于若在预设时间段内没有接收到所述第一上游节点发送的处理完成消息,则将所述事件信息发送至第二上游节点;其中,所述处理完成消息为所述第一上游节点在预设的共享缓存数据库中没有查找到所述事件标识时,基于所述事件标识获取对应的事件状态信息,并将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中后生成的消息,或者,所述第一上游节点在预设的共享缓存数据库中查找到所述事件标识时生成的消息;
本发明实施例还公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,上游节点在接收到下游***发送的事件信息以后,可以在预设的共享缓存数据库中查找该事件信息中的事件标识,如果查找失败,则基于该事件标识获取对应的事件状态信息,并将该事件标识以及对应的事件状态信息写入共享缓存数据库中,事件状态信息不存在任何一台上游节点中,而是统一存储在共享缓存中,实现了事件状态信息与上游节点的分离,使得本发明实施例能够应用于所有场景的状态信息。
另外,在本发明实施例中,下游***可以根据判断预设时间段内是否接收到上游节点发送的处理完成消息,来判断该上游节点是否发生故障,当判定该上游节点发生故障时,即可将同一业务对象的同一事件信息发送至其他上游节点进行处理,降低故障节点对状态变更的影响,使得单一应用节点故障时,对业务无影响,保障了业务的可用性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种事件处理的方法实施例一的步骤流程图;
图2是本发明的一种事件处理的方法实施例一中的状态迁移示意图一;
图3是本发明的一种事件处理的方法实施例一中的状态迁移示意图二;
图4是本发明的一种事件处理的方法实施例二的步骤流程图;
图5是本发明的一种事件处理的服务器实施例的结构框图;
图6是本发明的一种事件处理的***实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,涉及下游***与上游节点的数据交互,其中,下游***可以包括语音***以及消息分发应用,语音***可以为电话接入设备,用于产生与电话相关的原始事件,并将该事件的事件信息经由消息分发应用分发至上游节点,上游节点可以为进行事件处理的节点,例如,上游节点可以包括进行事件状态处理的上游应用。本发明实施例可以将所有上游节点组成一个集群,集群中所有节点可以将基于事件获取的状态信息更新至共享缓存数据库中,当某一节点故障时,切换到集群中其他节点的同时,其他节点可以更新共享缓存中同一业务对象的状态信息,确保状态信息迁移无感。
作为一种示例,共享缓存数据库可以包括Redis缓存数据库,其中,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API(Application Programming Interface,应用程序编程接口)。Redis是一个key-value存储***,它支持存储的value类型较多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。为了保证效率,Redis的数据都是缓存在内存中,并且Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,以及在此基础上实现了master-slave(主从)同步。以下实施例以Redis缓存数据库为例进行说明。
本发明实施例采用Redis集群进行数据缓存,将各服务节点的当前原子状态存入到Redis缓存集群中,保证在其他节点使用时,能够同步获取前一个原子状态信息,高可靠地保障原子状态数据安全和稳定性。
在本发明实施例中,当新增上游节点时,可以向下游***发送订阅消息,下游***的消息中间件MQ(即消息分发应用)根据订阅者的订阅链接状态进行消息有效分发,从而快速将上游应用节点接入集群,并提供处理能力,提高***扩容能力。
以下对本发明实施例进行更加具体的说明:
参照图1,示出了本发明的一种事件处理的方法实施例一的步骤流程图,本发明实施例从上游节点侧进行说明,具体可以包括如下步骤:
步骤101,接收下游***发送的事件信息,其中,所述事件信息包括事件标识;
在具体实现中,下游***可以对电话事件进行检测,到监测到事件被触发时,生成事件信息,并将该事件信息分发到上游节点中。
作为一种示例,事件可以包括但不限于EventDailing(振铃)、EventReady(置闲)、EventNotReady(置忙、小休、事后整理等,根据不同的原因码区分)、EventEstablish(通话)、EventRelease(挂机)等。
在实际中,下游***可以调用QueryAgentStatusEx(Phone.WorkNo)(查询座席状态扩展信息接口)查询座席状态,然后可以在一些事件里面去调用该查询方法,就可以获取到实时的座席状态。对该坐席状态进行逻辑处理,可以生成对应的事件信息。
作为一种示例,事件信息可以包括事件标识,进一步的,事件标识可以包括业务对象标识以及事件序号。
其中,业务对象可以包括电话坐席,业务对象标识是座席的身份唯一标识,可以包括坐席工号、坐席分机号等信息;事件序号可以用于标识数据最后触发的事件的唯一序列号。
步骤102,如果在预设的Redis缓存数据库中没有查找到所述事件标识,则基于所述事件标识获取对应的事件状态信息;
上游节点以事件作为驱动,接收到事件信息以后,可以首先在Redis缓存数据库中查找该事件信息对应的事件标识,以判断该事件信息是否已经被处理。如果查找成功,表示该事件信息已经被处理,如果查找失败,表示该事件信息没有被处理。
在本发明实施例的一种优选实施例中,步骤102可以包括如下子步骤:
在Redis缓存数据库中查找所述业务对象标识以及事件序号;若均查找到所述业务对象标识以及所述事件序号,则判定所述事件标识查找成功;若查找到所述业务对象标识但没有查找到所述事件序号,或者,均没有查找到所述业务对象标识以及所述事件序号,则判定所述事件标识查找失败。
具体的,由于同一个业务对象能够触发的事件可以有多个,因此设置事件序号以进行事件标识,在Redis缓存数据库中进行查找时,可以首先查找业务对象标识,当找不到该业务对象标识时,表示Redis缓存数据库中没有存储该业务对象的记录,即事件标识查找失败。
当找到该业务对象标识时,表示Redis缓存数据库中存储有该业务对象的记录,此时可以从该业务对象的记录中查找事件序号,以判断该事件是否为历史事件,如果查找到该事件序号,则事件标识查找成功,即该事件为历史事件,如果查找不到该事件序号,则事件标识查找失败,即该事件为非历史事件。
如果事件标识查找失败,即针对非历史事件,则上游节点可以基于该事件信息进行事件处理。在具体实现中,上游节点可以对该事件信息进行逻辑处理,解析出该事件标识对应的事件状态信息。
作为一种示例,事件状态信息可以包括坐席状态以及对应的属性信息。在本发明实施例中,对业务扩展采取标准化及扩展化抽取,则坐席状态可以包括标准原子状态以及可扩展原子状态,例如,标准原子状态可以包括签入、签出、置闲、置忙、工作、事后整理等,可扩展原子状态可以包括小休等。
坐席状态对应的属性信息也可以称为状态原子信息,可以包括但不限于:座席工号、状态开始时间、座席登录唯一标识、原因、设备号、设备类型、角色、业务属性信息、用户唯一标识等。
步骤103,将所述事件标识以及对应的事件状态信息写入所述Redis缓存数据库中。
在具体实现中,如果事件信息没有被处理,则在获取该事件信息对应的事件状态信息以后,可以在Redis缓存数据库中记录该事件状态信息。
在本发明实施例的一种优选实施例中,步骤103可以包括如下子步骤:
子步骤S11,若均没有查找到所述业务对象标识以及所述事件序号,则将所述业务对象标识作为主键,所述事件序号以及所述事件状态信息作为所述主键对应的值,写入所述Redis缓存数据库中;
在具体实现中,如果没有在Redis缓存数据库中找到业务对象标识,表示该事件信息对应的事件为该业务对象的第一个事件,即原始事件,则在进行数据缓存时,可以将业务对象标识作为主键key,例如,以坐席工号作为key,将该业务对象标识对应的事件序号以及事件状态信息作为该key对应的值value,写入Redis缓存数据库中。
子步骤S12,若查找到所述业务对象标识但没有查找到所述事件序号,则将所述事件序号以及所述事件状态信息覆盖所述业务对象标识下的原有记录。
另一方面,如果在Redis缓存数据库中存在该业务对象标识但没有该事件序号,表示该事件信息对应的事件不是原始事件,此时,可以将该事件序号以及事件状态信息写入同一业务对象的记录下。
在具体实现中,为了节省存储空间,Redis缓存数据库中仅存储最新的事件对应的事件状态信息,不会保留历史事件,则当前接收到的事件信息对应的事件序号以及事件状态信息写入缓存后,会覆盖该业务对象标识下的原有记录。
在本发明实施例的一种优选实施例中,本发明实施例还可以包括如下步骤:
若在预设的Redis缓存数据库中查找到所述事件标识,或者,在所述将所述事件标识以及对应的事件状态信息写入所述Redis缓存数据库中以后,则向所述下游***返回处理完成信息。
具体的,在一种实施方式中,如果上游节点在Redis缓存数据库中查找到当前接收到的业务对象标识以及对应的事件序号,则表示当前事件的状态更新操作已经完成,此时,上游节点可以直接向消息路由发送一条处理完成信息,以通知下游***当前状态更新完成。
在另一种实施方式中,如果上游节点没有找到当前接收到的业务对象标识和/或对应的事件序号,在进行步骤103的处理后,上游节点可以向下游***发送一条处理完成信息,以通知下游***当前状态更新完成。
例如,响应于事件信息的坐席状态变更的场景,可以如图2以及图3所示。
在本发明实施例中,上游节点在接收到下游***发送的事件信息以后,可以在预设的Redis缓存数据库中查找该事件信息中的事件标识,如果查找失败,则基于该事件标识获取对应的事件状态信息,并将该事件标识以及对应的事件状态信息写入Redis缓存数据库中,事件状态信息不存在任何一台上游节点中,而是统一存储在Redis缓存中,实现了事件状态信息与上游节点的分离,使得本发明实施例能够应用于所有场景的状态信息。
参照图4,示出了本发明的一种事件处理的方法实施例二的步骤流程图,本发明实施例从下游***侧进行说明,在本发明实施例中,下游***在接收到新增节点的订阅消息以后,可以根据该订阅消息,采用消息分发机制,向新增节点进行消息分发,以快速将应用节点接入集群,并提供处理能力。
基于下游***的消息分发机制、对事件的轮训策略,本发明实施例具体可以包括如下步骤:
步骤401,向第一上游节点发送事件信息,其中,所述事件信息包括事件标识;
在具体实现中,当下游***监测到事件被触发以后,可以生成该事件的事件信息,并通过消息分发应用将事件信息发送至第一上游节点中。
作为一种示例,事件信息可以包括事件标识,进一步的,事件标识可以包括业务对象标识以及事件序号。
其中,业务对象可以包括电话坐席,业务对象标识可以包括坐席工号、坐席分机号等信息;事件序号可以用于标识数据最后触发的事件的唯一序列号。
步骤402,若在预设时间段内没有接收到所述第一上游节点发送的处理完成消息,则将所述事件信息发送至第二上游节点。
下游***向第一上游节点发送事件信息以后,可以等待预设时间段,判断预设时间段内是否接收到第一上游节点发送的处理完成消息。
具体的,该处理完成消息可以为第一上游节点判断该事件信息处理完成后生成的消息。
在本发明实施例的一种优选实施例中,该处理完成消息可以为第一上游节点在预设的Redis缓存数据库中没有查找到事件标识时,基于事件标识获取对应的事件状态信息,并将所述事件标识以及对应的事件状态信息写入所述Redis缓存数据库中后生成的消息。
在本发明实施例的另一种优选实施例中,该处理完成消息可以为第一上游节点在预设的Redis缓存数据库中查找到事件标识时生成的消息。
如果下游***的消息分发应用在预设时间段内没有接收到第一上游节点返回的处理完成消息,则下游***可以判定第一上游节点故障,为了保障坐席状态迁移无感,消息分发应用在预设时间段后可以向第二上游节点分发该事件信息。
在具体实现中,消息分发应用在预设时间段内没有接收到第一上游节点返回的处理完成消息,可以分为两种情况:
第一种情况是:第一上游节点在进行事件处理前或者进行事件处理的过程中发生故障,这种情况下,事件的坐席状态更新并没有处理完成,Redis缓存数据库中不存在该事件标识对应的记录。则第二上游节点在进行事件处理时,需要基于事件标识获取对应的事件状态信息,并将该事件标识以及对应的事件状态信息写入Redis缓存数据库中,以完成坐席状态的更新,更新完成后,第二上游节点可以向消息分发应用发送处理完成消息。
第二种情况是:第一上游节点在事件处理完成后、发出处理完成消息前发生故障,这种情况下,事件的坐席状态更新已经处理完成,Redis缓存数据库中存在该事件标识对应的记录。则第二上游节点无需进行事件处理,只需向消息分发应用发送处理完成消息。
当消息分发应用接收到第二上游节点返回的处理完成消息,可以获悉该事件信息处理完成,则继续等待下一事件的处理。否则,当消息分发应用没有接收到第二上游节点返回的处理完成消息,则继续步骤401-步骤403的过程。
在本发明实施例中,消息分发应用可以根据判断预设时间段内是否接收到上游节点发送的处理完成消息,来判断该上游节点是否发生故障,当判定该上游节点发生故障时,即可将同一业务对象的同一事件信息发送至其他上游节点进行处理,降低故障节点对状态变更的影响,使得单一应用节点故障时,对业务无影响,保障了业务的可用性。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明的一种事件处理的服务器实施例的结构框图,具体可以包括如下模块:
事件信息接收模块501,用于接收下游***发送的事件信息,其中,所述事件信息包括事件标识;
事件状态信息获取模块502,用于如果在预设的共享缓存数据库中没有查找到所述事件标识,则基于所述事件标识获取对应的事件状态信息;
信息写入模块503,用于将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中。
在本发明实施例的一种优选实施例中,所述事件标识包括业务对象标识以及事件序号,所述服务器还包括:
查找子模块,用于在共享缓存数据库中查找所述业务对象标识以及事件序号;
第一判定模块,用于若均查找到所述业务对象标识以及所述事件序号,则判定所述事件标识查找成功;
第二判定模块,用于若查找到所述业务对象标识但没有查找到所述事件序号,或者,均没有查找到所述业务对象标识以及所述事件序号,则判定所述事件标识查找失败。
在本发明实施例的一种优选实施例中,所述信息写入模块503包括:
第一写入子模块,用于若均没有查找到所述业务对象标识以及所述事件序号,则将所述业务对象标识作为主键,所述事件序号以及所述事件状态信息作为所述主键对应的值,写入所述共享缓存数据库中;
第二写入子模块,用于若查找到所述业务对象标识但没有查找到所述事件序号,则将所述事件序号以及所述事件状态信息覆盖所述业务对象标识下的原有记录。
在本发明实施例的一种优选实施例中,所述服务器还包括:
处理完成信息返回模块,用于若在预设的共享缓存数据库中查找到所述事件标识,或者,在所述将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中以后,则向所述下游***返回处理完成信息。
在本发明实施例的一种优选实施例中,所述服务器还包括:
订阅消息发送模块,用于向下游***发送订阅消息。
参照图6,示出了本发明的一种事件处理的***实施例的结构框图,具体可以包括如下模块:
事件信息发送模块601,用于向第一上游节点发送事件信息,其中,所述事件信息包括事件标识;
重发模块602,用于若在预设时间段内没有接收到所述第一上游节点发送的处理完成消息,则将所述事件信息发送至第二上游节点;其中,所述处理完成消息为所述第一上游节点在预设的共享缓存数据库中没有查找到所述事件标识时,基于所述事件标识获取对应的事件状态信息,并将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中后生成的消息,或者,所述第一上游节点在预设的共享缓存数据库中查找到所述事件标识时生成的消息。
在本发明实施例的一种优选实施例中,所述***还包括:
订阅消息接收模块,用于接收新增节点的订阅消息;
分发模块,用于基于所述订阅消息,向所述新增节点进行消息分发。
本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现图1和/或图4所述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图1和/或图4任一项所述方法的步骤。
以上所描述的实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种事件处理的方法、服务器及***,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种事件处理的方法,其特征在于,应用于上游节点,所述方法包括:
第一上游节点接收下游***发送的事件信息,其中,所述事件信息包括事件标识;
如果所述第一上游节点在预设的共享缓存数据库中没有查找到所述事件标识,则所述第一上游节点基于所述事件标识获取对应的事件状态信息;
所述第一上游节点将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中;
如果所述第一上游节点发生故障,则第二上游节点接收所述下游***发送的所述事件信息;
在事件状态信息在所述共享缓存数据库中更新未完成的情况下,所述第二上游节点基于所述事件标识获取对应的事件状态信息,并将该事件标识以及对应的事件状态信息写入所述共享缓存数据库中;
其中,所述共享缓存数据库可供多个上游节点将基于事件获取的事件状态信息更新至该共享缓存数据库中。
2.根据权利要求1所述的方法,其特征在于,所述事件标识包括业务对象标识以及事件序号,在所述在预设的共享缓存数据库中没有查找到所述事件标识,则基于所述事件标识获取对应的事件状态信息之前,还包括:
在共享缓存数据库中查找所述业务对象标识以及事件序号;
若均查找到所述业务对象标识以及所述事件序号,则判定所述事件标识查找成功;
若查找到所述业务对象标识但没有查找到所述事件序号,或者,均没有查找到所述业务对象标识以及所述事件序号,则判定所述事件标识查找失败。
3.根据权利要求2所述的方法,其特征在于,所述将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中,包括:
若均没有查找到所述业务对象标识以及所述事件序号,则将所述业务对象标识作为主键,所述事件序号以及所述事件状态信息作为所述主键对应的值,写入所述共享缓存数据库中;
若查找到所述业务对象标识但没有查找到所述事件序号,则将所述事件序号以及所述事件状态信息覆盖所述业务对象标识下的原有记录。
4.根据权利要求1所述的方法,其特征在于,还包括:
若在预设的共享缓存数据库中查找到所述事件标识,或者,在所述将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中以后,则向所述下游***返回处理完成信息。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述接收下游***发送的事件信息的步骤之前,还包括:
向下游***发送订阅消息。
6.一种事件处理的方法,其特征在于,所述方法包括:
向第一上游节点发送事件信息,其中,所述事件信息包括事件标识;
若在预设时间段内没有接收到所述第一上游节点发送的处理完成消息,则将所述事件信息发送至第二上游节点,使得所述第二上游节点在事件状态信息在共享缓存数据库中更新未完成的情况下,基于所述事件标识获取对应的事件状态信息,并将该事件标识以及对应的事件状态信息写入所述共享缓存数据库中;
其中,所述处理完成消息为所述第一上游节点在预设的共享缓存数据库中没有查找到所述事件标识时,基于所述事件标识获取对应的事件状态信息,并将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中后生成的消息,或者,所述第一上游节点在预设的共享缓存数据库中查找到所述事件标识时生成的消息;
其中,所述共享缓存数据库可供多个上游节点将基于事件获取的事件状态信息更新至该共享缓存数据库中。
7.根据权利要求6所述的方法,其特征在于,还包括:
接收新增节点的订阅消息;
基于所述订阅消息,向所述新增节点进行消息分发。
8.一种事件处理的服务器,其特征在于,所述服务器包括:
第一事件信息接收模块,用于使第一上游节点接收下游***发送的事件信息,其中,所述事件信息包括事件标识;
第一事件状态信息获取模块,用于如果所述第一上游节点在预设的共享缓存数据库中没有查找到所述事件标识,则使所述第一上游节点基于所述事件标识获取对应的事件状态信息;
信息写入模块,用于使所述第一上游节点将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中;
第二事件信息接收模块,用于如果所述第一上游节点发生故障,则使第二上游节点接收所述下游***发送的所述事件信息;
第二事件状态信息获取模块,用于在事件状态信息在所述共享缓存数据库中更新未完成的情况下,使所述第二上游节点基于所述事件标识获取对应的事件状态信息,并将该事件标识以及对应的事件状态信息写入所述共享缓存数据库中;
其中,所述共享缓存数据库可供多个上游节点将基于事件获取的事件状态信息更新至该共享缓存数据库中。
9.一种事件处理的***,其特征在于,所述***包括:
事件信息发送模块,用于向第一上游节点发送事件信息,其中,所述事件信息包括事件标识;
重发模块,用于若在预设时间段内没有接收到所述第一上游节点发送的处理完成消息,则将所述事件信息发送至第二上游节点,使得所述第二上游节点在事件状态信息在共享缓存数据库中更新未完成的情况下,基于所述事件标识获取对应的事件状态信息,并将该事件标识以及对应的事件状态信息写入所述共享缓存数据库中;
其中,所述处理完成消息为所述第一上游节点在预设的共享缓存数据库中没有查找到所述事件标识时,基于所述事件标识获取对应的事件状态信息,并将所述事件标识以及对应的事件状态信息写入所述共享缓存数据库中后生成的消息,或者,所述第一上游节点在预设的共享缓存数据库中查找到所述事件标识时生成的消息;
其中,所述共享缓存数据库可供多个上游节点将基于事件获取的事件状态信息更新至该共享缓存数据库中。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5和/或6-7任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至5和/或6-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150232.3A CN108566291B (zh) | 2018-02-13 | 2018-02-13 | 一种事件处理的方法、服务器及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150232.3A CN108566291B (zh) | 2018-02-13 | 2018-02-13 | 一种事件处理的方法、服务器及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108566291A CN108566291A (zh) | 2018-09-21 |
CN108566291B true CN108566291B (zh) | 2020-04-28 |
Family
ID=63532254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810150232.3A Active CN108566291B (zh) | 2018-02-13 | 2018-02-13 | 一种事件处理的方法、服务器及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108566291B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669791A (zh) * | 2018-12-22 | 2019-04-23 | 网宿科技股份有限公司 | 交互方法、服务器及计算机可读存储介质 |
CN110232032B (zh) * | 2019-07-22 | 2022-02-11 | 东软医疗***股份有限公司 | 一种数据采集***和方法 |
CN112288990A (zh) * | 2019-07-24 | 2021-01-29 | 上海东方富联科技有限公司 | 基于物联数据生成物联事件的方法、***、介质及设备 |
CN110795632B (zh) * | 2019-10-30 | 2022-10-04 | 北京达佳互联信息技术有限公司 | 一种状态查询方法、装置及电子设备 |
CN111338818A (zh) * | 2020-02-24 | 2020-06-26 | 北京声智科技有限公司 | 一种事件处理方法及相关设备 |
CN112785729A (zh) * | 2020-12-30 | 2021-05-11 | 深圳市顺易通信息科技有限公司 | 一种停车费减免的处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103518377A (zh) * | 2011-01-06 | 2014-01-15 | 汤姆逊许可公司 | 更新接收设备中的数据库的方法和装置 |
CN107404524A (zh) * | 2017-07-24 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种分布式集群节点访问的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309165B (zh) * | 2007-05-14 | 2012-04-04 | 华为技术有限公司 | 信息报告的控制方法、装置和设备 |
CN102779121A (zh) * | 2011-05-09 | 2012-11-14 | 腾讯科技(深圳)有限公司 | 一种事件内容信息获取方法及*** |
CN104133724B (zh) * | 2014-04-03 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 并发任务调度方法及装置 |
-
2018
- 2018-02-13 CN CN201810150232.3A patent/CN108566291B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103518377A (zh) * | 2011-01-06 | 2014-01-15 | 汤姆逊许可公司 | 更新接收设备中的数据库的方法和装置 |
CN107404524A (zh) * | 2017-07-24 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种分布式集群节点访问的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108566291A (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108566291B (zh) | 一种事件处理的方法、服务器及*** | |
JP6749926B2 (ja) | データを同期する方法、機器、及びシステム | |
CN107357688B (zh) | 分布式***及其故障恢复方法和装置 | |
CN106059825A (zh) | 一种分布式***及配置方法 | |
CN110784498B (zh) | 一种个性化数据容灾方法及装置 | |
CN110543512B (zh) | 一种信息同步方法,装置及*** | |
CN110650164B (zh) | 文件的上传方法、装置、终端以及计算机存储介质 | |
CN113051110A (zh) | 集群切换方法、装置及设备 | |
CN111694865A (zh) | 基于分布式***的四层结构数据获取方法和装置 | |
WO2017107984A1 (zh) | 一种数据恢复方法及装置 | |
CN110196749B (zh) | 虚拟机的恢复方法及装置、存储介质及电子装置 | |
US20180121531A1 (en) | Data Updating Method, Device, and Related System | |
EP2416526B1 (en) | Task switching method, server node and cluster system | |
CN114130035A (zh) | 一种用户匹配方法、装置、设备及存储介质 | |
CN108509296B (zh) | 一种处理设备故障的方法和*** | |
CN112000850A (zh) | 进行数据处理的方法、装置、***及设备 | |
US9043274B1 (en) | Updating local database and central database | |
CN117435569A (zh) | 缓存***动态扩容方法、装置、设备、介质和程序产品 | |
CN110928945B (zh) | 一种针对数据库的数据处理方法及装置,数据处理*** | |
CN112187889A (zh) | 一种数据同步方法、装置及存储介质 | |
CN108881452B (zh) | 一种数据同步的方法、装置及存储介质 | |
CN114595069B (zh) | 服务下线方法、装置、电子设备及存储介质 | |
CN113472566A (zh) | 一种联盟区块链的状态监控方法及主节点状态监控*** | |
CN110647298A (zh) | 一种数据存储控制方法及装置 | |
CN114629783B (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 |