CN106874122A - 基于消息队列的事件分配方法及系统 - Google Patents
基于消息队列的事件分配方法及系统 Download PDFInfo
- Publication number
- CN106874122A CN106874122A CN201710121009.1A CN201710121009A CN106874122A CN 106874122 A CN106874122 A CN 106874122A CN 201710121009 A CN201710121009 A CN 201710121009A CN 106874122 A CN106874122 A CN 106874122A
- Authority
- CN
- China
- Prior art keywords
- event
- message
- distribution
- attribute information
- database
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于消息队列的事件分配方法及系统,所述事件分配方法包括以下步骤:S1、根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向消息系统的消息队列中写入包含所述事件的ID的消息;S2、所述消息系统将消息队列中未消费的消息分配至订阅所述消息的消息消费端;S3、所述消息消费端根据消息中包含的ID从所述数据库中获取相应事件的属性信息;S4、根据事件的属性信息将所述事件分配至相应的处理人员。与现有技术相比,本发明将消息系统与事件系统相结合,利用消息生成/订阅机制,实现了事件从生成到分配的过程,保证了事件分配的实时性,同时也提高了服务器的资源利用率。
Description
技术领域
本发明涉及互联网领域,特别涉及一种基于消息队列的事件分配方法及系统。
背景技术
目前,客户在前端不同的页面咨询,会生成不同种类的服务事件,后台通过定时服务去拉取未分配的事件,根据事件的属性以及服务人员的配置,将未分配的事件分配给相应的服务人员。现有技术中的这种机制基本上能够解决从用户咨询到分配服务人员的这样一个需求,但是也存在一些如下的问题:
第一、定时服务的调度频率有限,因此分配事件的实时性不是很好,存在一定的延迟,导致客户体验度受到影响;
第二、定时调度服务是单点调度,异常停止到重启的过程中会导致整个分配流程发生中断;
第三、调度服务是轮循执行的,因此不论是否有待分配的事件都会去进行检查,导致服务器资源的利用率下降。
发明内容
本发明要解决的技术问题是为了克服现有技术中定时调度服务存在分配事件的实时性差、单点异常会导致整个流程中断以及服务器资源的利用率低等的缺陷,提供一种基于消息队列的事件分配方法及系统。
本发明是通过下述技术方案来解决上述技术问题的:
一种基于消息队列的事件分配方法,其特点在于,包括以下步骤:
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以及事件分配模块24。下面对各个模块的功能进行简单介绍。
所述事件生成模块用于根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向所述消息系统的消息队列中写入包含所述事件的ID的消息。
所述消息系统用于将消息队列中未消费的消息分配至订阅所述消息的消息消费端。
所述消息消费端用于根据消息中包含的ID从所述数据库中获取相应事件的属性信息,并调用所述事件分配模块。
所述事件分配模块用于根据事件的属性信息将所述事件分配至相应的处理人员。
在可选的一种实施方式中,所述消息消费端与所述事件分配模块部署于同一集群中。
在可选的一种实施方式中,将上述事件生成模块封装成SOA(面向服务的架构)服务,即事件生成服务;将上述事件分配模块封装成SOA服务,即事件分配服务。如图3所示,事件生成服务根据输入至网页的内容生成事件,并将所述事件的属性信息存储至MYSQL(关系型数据库管理系统),MYSQL向事件生成服务返回事件的ID。事件生成服务还向消息系统的消息队列中写入消息,消息系统返回写入是否成功的结果。其中,写入的消息中包含所述事件的ID。消息系统向订阅所述消息的消息消费端分配消息,消息消费端返回是否成功接收的结果。消息消费端根据事件的ID从MYSQL中获取所述事件的属性信息,并在接收到MYSQL的返回结果为成功获取时调用事件分配服务。事件分配服务获取相应的处理人员,并向其分配所述事件。事件分配结束时,将分配结果记录在MYSQL中。事件分配服务在事件分配成功后,向IM(即时通信系统)发起会话,以使得用户与处理人员可以直接沟通,IM向事件分配服务返回是否成功发起会话的结果。
与现有技术中的定时调度服务相比,本实施例中的事件分配方法及系统通过将消息系统与事件系统相结合,利用消息生成/订阅机制,实现了事件从生成到分配的过程,并将整个过程缩短至200毫秒以内,保证了事件分配的实时性,同时单点异常不会影响整个分配流程,服务器资源的利用率也大大提高。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种基于消息队列的事件分配方法,其特征在于,包括以下步骤:
S1、根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向消息系统的消息队列中写入包含所述事件的ID的消息;
S2、所述消息系统将消息队列中未消费的消息分配至订阅所述消息的消息消费端;
S3、所述消息消费端根据消息中包含的ID从所述数据库中获取相应事件的属性信息;
S4、根据事件的属性信息将所述事件分配至相应的处理人员。
2.如权利要求1所述的事件分配方法,其特征在于,在步骤S4之后还包括:在所述事件分配失败时,返回步骤S2重新分配包含所述事件的ID的消息,直至分配次数达到预设次数。
3.如权利要求1所述的事件分配方法,其特征在于,在步骤S4之后还包括:在所述事件分配成功时将包含所述事件的ID的消息设置为已消费,并返回步骤S2分配下一条未消费的消息。
4.如权利要求1-3中任一项所述的事件分配方法,其特征在于,在步骤S4之后还包括:将分配结果记录至所述数据库中;
其中,所述分配结果包括以下中的至少一种:事件的分配时间、事件的处理人员、事件的处理状态。
5.如权利要求1所述的事件分配方法,其特征在于,
所述输入至网页的内容包括以下中的至少一种:咨询内容、投诉内容、建议内容;和/或,
所述事件的属性信息包括以下中的至少一种:ID、类型、发送方、发送时间、服务指标时间、强制分配时间、预计接收组、来源、目的地。
6.一种基于消息队列的事件分配系统,其特征在于,包括事件生成模块、消息系统、消息消费端以及事件分配模块;
所述事件生成模块用于根据输入至网页的内容生成事件,并将所述事件的属性信息存储至数据库,以及向所述消息系统的消息队列中写入包含所述事件的ID的消息;
所述消息系统用于将消息队列中未消费的消息分配至订阅所述消息的消息消费端;
所述消息消费端用于根据消息中包含的ID从所述数据库中获取相应事件的属性信息,并调用所述事件分配模块;
所述事件分配模块用于根据事件的属性信息将所述事件分配至相应的处理人员。
7.如权利要求6所述的事件分配系统,其特征在于,所述消息消费端与所述事件分配模块部署于同一集群中。
8.如权利要求6所述的事件分配系统,其特征在于,在所述事件分配模块分配失败时,调用所述消息系统以重新分配包含所述事件的ID的消息,直至分配次数达到预设次数。
9.如权利要求6所述的事件分配系统,其特征在于,所述事件分配系统还包括设置模块,用于在所述事件分配模块分配成功时将包含所述事件的ID的消息设置为已消费,并调用所述消息系统以分配下一条未消费的消息。
10.如权利要求6-9中任一项所述的事件分配系统,其特征在于,所述事件分配系统还包括记录模块,用于将分配结果记录至所述数据库中;
其中,所述分配结果包括以下中的至少一种:事件的分配时间、事件的处理人员、事件的处理状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121009.1A CN106874122A (zh) | 2017-03-02 | 2017-03-02 | 基于消息队列的事件分配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121009.1A CN106874122A (zh) | 2017-03-02 | 2017-03-02 | 基于消息队列的事件分配方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106874122A true CN106874122A (zh) | 2017-06-20 |
Family
ID=59169304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710121009.1A Pending CN106874122A (zh) | 2017-03-02 | 2017-03-02 | 基于消息队列的事件分配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874122A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107481016A (zh) * | 2017-07-20 | 2017-12-15 | 苏州浦瑞融网络科技有限公司 | 一种电子商务投诉管理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530255A (zh) * | 2013-10-12 | 2014-01-22 | 北京奇虎科技有限公司 | 分布式异步事件的处理方法及系统 |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
CN104616100A (zh) * | 2015-01-14 | 2015-05-13 | 清华大学 | 应急预案的管理系统 |
CN105512244A (zh) * | 2015-11-30 | 2016-04-20 | 北京京东尚科信息技术有限公司 | 基于消息队列实现数据库事务处理的方法及装置 |
CN105701257A (zh) * | 2016-03-31 | 2016-06-22 | 北京奇虎科技有限公司 | 数据处理方法和装置 |
CN105843937A (zh) * | 2016-03-31 | 2016-08-10 | 北京奇虎科技有限公司 | 数据处理方法和装置 |
-
2017
- 2017-03-02 CN CN201710121009.1A patent/CN106874122A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530255A (zh) * | 2013-10-12 | 2014-01-22 | 北京奇虎科技有限公司 | 分布式异步事件的处理方法及系统 |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
CN104616100A (zh) * | 2015-01-14 | 2015-05-13 | 清华大学 | 应急预案的管理系统 |
CN105512244A (zh) * | 2015-11-30 | 2016-04-20 | 北京京东尚科信息技术有限公司 | 基于消息队列实现数据库事务处理的方法及装置 |
CN105701257A (zh) * | 2016-03-31 | 2016-06-22 | 北京奇虎科技有限公司 | 数据处理方法和装置 |
CN105843937A (zh) * | 2016-03-31 | 2016-08-10 | 北京奇虎科技有限公司 | 数据处理方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107481016A (zh) * | 2017-07-20 | 2017-12-15 | 苏州浦瑞融网络科技有限公司 | 一种电子商务投诉管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850589B (zh) | 一种管控云计算终端和云服务器运作的方法 | |
US8898301B2 (en) | Intelligent work load manager | |
CN107688496A (zh) | 任务分布式处理方法、装置、存储介质和服务器 | |
CN103810045B (zh) | 资源分配方法、资源管理器、资源服务器及系统 | |
CN106899680A (zh) | 多区块链的分片处理方法和装置 | |
CN105912403B (zh) | Docker容器的资源管理方法及装置 | |
CN104536965B (zh) | 一种大数据条件下的数据查询展示系统及方法 | |
CN103139100A (zh) | 处理业务的方法和系统 | |
CN111506404A (zh) | 一种基于Kubernetes的共享GPU调度方法 | |
WO2020192649A1 (zh) | 一种数据中心管理系统 | |
CN107682576A (zh) | 客户进线分配方法、系统、计算机设备及存储介质 | |
CN105119966A (zh) | 一种公众号管理方法及装置 | |
CN103475683B (zh) | 云呼叫中心资源调度处理方法及装置 | |
CN106230922A (zh) | 一种消息订阅方法、消息生产单元及消息接收单元 | |
CN104735095A (zh) | 一种云计算平台作业调度方法及装置 | |
CN106528853A (zh) | 数据交互管理装置、跨库数据交互处理装置及方法 | |
CN103023980A (zh) | 一种云平台处理用户服务请求的方法和系统 | |
CN109257399A (zh) | 云平台应用程序管理方法及管理平台、存储介质 | |
CN107682572A (zh) | 客户进线分配方法、系统、计算机设备及存储介质 | |
CN108881651A (zh) | 呼叫平台的数据处理方法、装置、设备及存储介质 | |
CN106685853B (zh) | 处理数据的方法及装置 | |
CN109801425B (zh) | 面签业务中队列轮询提示方法、装置、设备及存储介质 | |
CN106874122A (zh) | 基于消息队列的事件分配方法及系统 | |
CN107368326A (zh) | 进程控制方法和装置 | |
CN105450878A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170620 |
|
RJ01 | Rejection of invention patent application after publication |