基于消息队列的事件分配方法及系统技术方案

技术编号:15690715 阅读:79 留言:0更新日期:2017-06-24 03:20
本发明专利技术公开了一种基于消息队列的事件分配方法及系统,所述事件分配方法包括以下步骤:S1、根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向消息系统的消息队列中写入包含所述事件的ID的消息;S2、所述消息系统将消息队列中未消费的消息分配至订阅所述消息的消息消费端;S3、所述消息消费端根据消息中包含的ID从所述数据库中获取相应事件的属性信息;S4、根据事件的属性信息将所述事件分配至相应的处理人员。与现有技术相比,本发明专利技术将消息系统与事件系统相结合,利用消息生成/订阅机制,实现了事件从生成到分配的过程,保证了事件分配的实时性,同时也提高了服务器的资源利用率。

Event allocation method and system based on message queue

The invention discloses an event distribution method and system based on message queue, the event distribution method comprises the following steps: S1, according to the input to the content of the web page generation event, and the event attribute information stored in a database, and write a message containing the event message to the ID message queue system S2; the message system, will not consume news messages in the queue is allocated to the subscription message consumer terminal; S3, the terminal according to the consumption of the message contained in the message from the ID database to obtain information of the corresponding event; S4, according to the attribute information of the event will be the event assigned to the corresponding processing personnel. Compared with the prior art, the invention of the message system and event system combined with message generation / subscription mechanism, realize the event from generation to the distribution process, ensure the real-time event distribution, but also improve the server resource utilization rate.

【技术实现步骤摘要】
基于消息队列的事件分配方法及系统
本专利技术涉及互联网领域,特别涉及一种基于消息队列的事件分配方法及系统。
技术介绍
目前,客户在前端不同的页面咨询,会生成不同种类的服务事件,后台通过定时服务去拉取未分配的事件,根据事件的属性以及服务人员的配置,将未分配的事件分配给相应的服务人员。现有技术中的这种机制基本上能够解决从用户咨询到分配服务人员的这样一个需求,但是也存在一些如下的问题:第一、定时服务的调度频率有限,因此分配事件的实时性不是很好,存在一定的延迟,导致客户体验度受到影响;第二、定时调度服务是单点调度,异常停止到重启的过程中会导致整个分配流程发生中断;第三、调度服务是轮循执行的,因此不论是否有待分配的事件都会去进行检查,导致服务器资源的利用率下降。
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术中定时调度服务存在分配事件的实时性差、单点异常会导致整个流程中断以及服务器资源的利用率低等的缺陷,提供一种基于消息队列的事件分配方法及系统。本专利技术是通过下述技术方案来解决上述技术问题的:一种基于消息队列的事件分配方法,其特点在于,包括以下步骤:S1、根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向消息系统的消息队列中写入包含所述事件的ID的消息;S2、所述消息系统将消息队列中未消费的消息分配至订阅所述消息的消息消费端;S3、所述消息消费端根据消息中包含的ID从所述数据库中获取相应事件的属性信息;S4、根据事件的属性信息将所述事件分配至相应的处理人员。较佳地,在步骤S4之后还包括:在所述事件分配失败时,返回步骤S2重新分配包含所述事件的ID的消息,直至分配次数达到预设次数。较佳地,在步骤S4之后还包括:在所述事件分配成功时将包含所述事件的ID的消息设置为已消费,并返回步骤S2分配下一条未消费的消息。较佳地,在步骤S4之后还包括:将分配结果记录至所述数据库中;其中,所述分配结果包括以下中的至少一种:事件的分配时间、事件的处理人员、事件的处理状态。较佳地,所述输入至网页的内容包括以下中的至少一种:咨询内容、投诉内容、建议内容;和/或,所述事件的属性信息包括以下中的至少一种:ID、类型、发送方、发送时间、服务指标时间、强制分配时间、预计接收组、来源、目的地。本专利技术还提供一种基于消息队列的事件分配系统,其特点在于,包括事件生成模块、消息系统、消息消费端以及事件分配模块;所述事件生成模块用于根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向所述消息系统的消息队列中写入包含所述事件的ID的消息;所述消息系统用于将消息队列中未消费的消息分配至订阅所述消息的消息消费端;所述消息消费端用于根据消息中包含的ID从所述数据库中获取相应事件的属性信息,并调用所述事件分配模块;所述事件分配模块用于根据事件的属性信息将所述事件分配至相应的处理人员。较佳地,所述消息消费端与所述事件分配模块部署于同一集群中。较佳地,在所述事件分配模块分配失败时,调用所述消息系统以重新分配包含所述事件的ID的消息,直至分配次数达到预设次数。较佳地,所述事件分配系统还包括设置模块,用于在所述事件分配模块分配成功时将包含所述事件的ID的消息设置为已消费,并调用所述消息系统以分配下一条未消费的消息。较佳地,所述事件分配系统还包括记录模块,用于将分配结果记录至所述数据库中;其中,所述分配结果包括以下中的至少一种:事件的分配时间、事件的处理人员、事件的处理状态。在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本专利技术各较佳实例。本专利技术的积极进步效果在于:与现有技术相比,本专利技术将消息系统与事件系统相结合,利用消息生成/订阅机制,实现了事件从生成到分配的过程,保证了事件分配的实时性,同时单点异常不会影响整个分配流程,服务器资源的利用率也大大提高。附图说明图1为本专利技术实施例的一种基于消息队列的事件分配方法的流程图。图2为本专利技术实施例的一种基于消息队列的事件分配系统的结构框图。图3为本专利技术实施例的事件分配系统执行事件分配方法的整体架构图。具体实施方式下面通过实施例的方式进一步说明本专利技术,但并不因此将本专利技术限制在所述的实施例范围之中。本专利技术的应用场景为用户在前端页面操作咨询服务(也可以为投诉服务或建议服务等)时,计算机后台根据用户的基本信息(例如注册账号等信息)以及咨询内容(也可以为投诉内容或建议内容等)生成事件,并将所述事件分配给相应的处理人员,以处理用户的咨询内容,例如回答问题、做出建议等。本实施例提供一种基于消息队列的事件分配方法,如图1所示,包括以下步骤:步骤101、根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向消息系统的消息队列中写入包含所述事件的ID(唯一标识)的消息。本实施例中的消息系统可以为现有技术中的消息系统,例如Kafka(一种分布式发布-订阅消息系统)。其中,事件的属性信息中包括事件的ID,还可以包括类型、发送方、发送时间、服务指标时间、强制分配时间、预计接收组、来源、目的地。步骤102、所述消息系统将消息队列中未消费的消息分配至订阅所述消息的消息消费端。当有新消息时,消息系统会从订阅所述消息的所有消息消费端中选择一个消息消费端,并向其分配新消息。步骤103、所述消息消费端根据消息中包含的ID从所述数据库中获取相应事件的属性信息;步骤104、根据事件的属性信息将所述事件分配至相应的处理人员。本方案中,可以预先为不同的应用场景分别定义咨询类型事件Code,在事件系统中,为每个Code指定特定的服务人群。步骤104中分配事件的原则可以为指定分配、关联分配或非关联分配。指定分配是指由事件发起方指定处理人员。关联分配是指如果事件类型设置了关联分配,则会把同一类型同一用户ID的事件优先分配给之前处理过同一类型同一用户ID的处理人员,如果之前没有处理人员处理过,则按照非关联分配原则分配。非关联分配是指如果事件类型设置了非关联分配,则会分配给正在处理事件数最少的处理人员,如果正在处理事件数最少的处理人员有多个,再从中选取今日完成事件数最少的处理人员,如果这样的处理人员还存在多个,那么随机分配给其中一个处理人员。在可选的一种实施方式中,步骤104之后还包括以下步骤:在所述事件分配失败时,返回步骤102重新分配包含所述事件的ID的消息,直至分配次数达到预设次数。本实施例中,若事件未成功分配至相应的处理人员,则事件分配失败,即消息消费失败,可以通过在消息系统中配置消息消费失败重试次数,即预设次数,例如可以设置为1~5次,重新返回消息系统向消息消费端分配消息的步骤,直至分配次数达到预设次数为止。在可选的一种实施方式中,步骤104之后还包括以下步骤:在所述事件分配成功时将包含所述事件的ID的消息设置为已消费,并返回步骤102分配下一条未消费的消息。在可选的一种实施方式中,步骤104之后还包括以下步骤:将分配结果记录至所述数据库中;其中,所述分配结果包括以下中的至少一种:事件的分配时间、事件的处理人员、事件的处理状态(从未分配变为已分配)。图2为本专利技术实施例提供的一种基于消息队列的事件分配系统的结构框图。其中,基于消息队列的事件分配系统20包括事件生成模块21、消息系统22、消息消费端23本文档来自技高网...
基于消息队列的事件分配方法及系统

【技术保护点】
一种基于消息队列的事件分配方法,其特征在于,包括以下步骤:S1、根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向消息系统的消息队列中写入包含所述事件的ID的消息;S2、所述消息系统将消息队列中未消费的消息分配至订阅所述消息的消息消费端;S3、所述消息消费端根据消息中包含的ID从所述数据库中获取相应事件的属性信息;S4、根据事件的属性信息将所述事件分配至相应的处理人员。

【技术特征摘要】
1.一种基于消息队列的事件分配方法,其特征在于,包括以下步骤:S1、根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向消息系统的消息队列中写入包含所述事件的ID的消息;S2、所述消息系统将消息队列中未消费的消息分配至订阅所述消息的消息消费端;S3、所述消息消费端根据消息中包含的ID从所述数据库中获取相应事件的属性信息;S4、根据事件的属性信息将所述事件分配至相应的处理人员。2.如权利要求1所述的事件分配方法,其特征在于,在步骤S4之后还包括:在所述事件分配失败时,返回步骤S2重新分配包含所述事件的ID的消息,直至分配次数达到预设次数。3.如权利要求1所述的事件分配方法,其特征在于,在步骤S4之后还包括:在所述事件分配成功时将包含所述事件的ID的消息设置为已消费,并返回步骤S2分配下一条未消费的消息。4.如权利要求1-3中任一项所述的事件分配方法,其特征在于,在步骤S4之后还包括:将分配结果记录至所述数据库中;其中,所述分配结果包括以下中的至少一种:事件的分配时间、事件的处理人员、事件的处理状态。5.如权利要求1所述的事件分配方法,其特征在于,所述输入至网页的内容包括以下中的至少一种:咨询内容、投诉内容、建议内容;和/或,所述事件的属性信息包括以下中的至少一种:ID、类型、发送方、发送时间、服务指标时间、强制分配时间、预计接收组、来...

【专利技术属性】
技术研发人员:王秋成叶晓川崔冰冰黎树敏
申请(专利权)人:上海携程国际旅行社有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1