CN105528254B - 一种业务处理方法及装置 - Google Patents
一种业务处理方法及装置 Download PDFInfo
- Publication number
- CN105528254B CN105528254B CN201510883146.XA CN201510883146A CN105528254B CN 105528254 B CN105528254 B CN 105528254B CN 201510883146 A CN201510883146 A CN 201510883146A CN 105528254 B CN105528254 B CN 105528254B
- Authority
- CN
- China
- Prior art keywords
- message
- processing
- port
- thread
- transmission port
- 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
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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种业务处理方法及装置,所述方法包括:主线程创建并维护处理线程队列;消息处理器监听广播端口;主线程在第一传输端口接收到第一外部设备的消息后,将第一传输端口接收到的消息广播到消息处理器监听的广播端口,以将消息放入消息处理器的消息队列中;消息处理器处理消息队列中的消息,创建需要处理的事务,将需要处理的事务分配给处理线程队列中空闲的处理线程,以使处理线程进行事务的处理。本发明能避免业务在多线程中同步和通讯,可以简单的管理线程之间的交互。
Description
技术领域
本发明涉及计算机技术,尤指一种业务处理方法及装置。
背景技术
服务器之间控制命令通讯,考虑消息的可靠性一般都采用TCP(TransmissionControl Protocol,传输控制协议)连接,服务器内部线程之间通讯存在线程同步等问题,会增加服务器内部逻辑复杂度和耦合度。当一个服务器需要和多个线程、多个功能模块共同协作时,线程管理和通讯对服务器的效率和稳定性有很大影响。
发明内容
为了解决上述技术问题,本发明提供了一种业务处理方法及装置,能够避免内部线程之间同步增加逻辑复杂度和耦合度。
为了达到本发明目的,本发明提供了一种业务处理方法,包括:
主线程创建并维护处理线程队列;
消息处理器监听广播端口;
所述主线程在第一传输端口接收到第一外部设备的消息后,将所述第一传输端口接收到的消息广播到所述消息处理器监听的广播端口,以将消息放入所述消息处理器的消息队列中;
所述消息处理器处理消息队列中的消息,创建需要处理的事务,将需要处理的事务分配给所述处理线程队列中空闲的处理线程,以使处理线程进行事务的处理。
进一步地,所述方法还包括:
所述消息处理器在处理所述主线程广播的第一传输端口接收到的消息后,向所述主线程发送回应消息;
所述主线程在接收到所述回应消息后,按照业务逻辑调用第一功能模块通过第二传输端口向第二外部设备发送消息。
进一步地,所述方法还包括:
所述第一功能模块在通过第二传输端口向第二外部设备发送消息后,接收并处理所述第二外部设备通过所述第二传输端口返回的消息,并向所述主线程返回消息;
所述主线程接收所述第一功能模块返回的消息。
进一步地,所述方法还包括:
所述主线程在接收到所述第一功能模块返回的消息后,调用第二功能模块通过所述第一传输端口向所述第一外部设备返回消息。
进一步地,所述第一传输端口为传输控制协议TCP端口,所述第二传输端口为用户数据报协议UDP端口。
进一步地,一种业务处理装置,包括:分发单元和处理单元,其中:
所述分发单元,用于控制主线程创建并维护处理线程队列,并在第一传输端口接收到第一外部设备的消息后,将所述第一传输端口接收到的消息广播到消息处理器监听的广播端口,以将消息放入消息处理器的消息队列中;
所述处理单元,用于控制消息处理器监听广播端口,处理消息队列中的消息,创建需要处理的事务,将需要处理的事务分配给所述处理线程队列中空闲的处理线程,以使处理线程进行事务的处理。
进一步地,所述处理单元,还用于控制消息处理器在处理所述主线程广播的第一传输端口接收到的消息后,向所述主线程发送回应消息;
所述分发单元,还用于控制主线程在接收到所述回应消息后,按照业务逻辑调用第一功能模块通过第二传输端口向第二外部设备发送消息。
进一步地,所述分发单元,还用于控制主线程接收所述第一功能模块返回的消息,所述第一功能模块返回的消息是该第一功能模块在通过第二传输端口向第二外部设备发送消息,接收并处理所述第二外部设备通过所述第二传输端口返回的消息后,发送给所述主线程。
进一步地,所述分发单元,还用于控制主线程在接收到所述第一功能模块返回的消息后,调用第二功能模块通过所述第一传输端口向所述第一外部设备返回消息。
进一步地,所述第一传输端口为传输控制协议TCP端口,所述第二传输端口为用户数据报协议UDP端口。
与现有技术相比,本发明包括主线程创建并维护处理线程队列;消息处理器监听广播端口;主线程在第一传输端口接收到第一外部设备的消息后,将第一传输端口接收到的消息广播到消息处理器监听的广播端口,以将消息放入消息处理器的消息队列中;消息处理器处理消息队列中的消息,创建需要处理的事务,将需要处理的事务分配给处理线程队列中空闲的处理线程,以使处理线程进行事务的处理。本发明能避免业务在多线程中同步和通讯,可以简单的管理线程之间的交互。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明的业务处理方法的流程图;
图2为采用本发明的方法实现服务器间交互完成业务的框架图;
图3为本发明业务处理装置的架构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示,本发明的业务处理方法,包括:
步骤101:主线程创建并维护处理线程队列;
主线程创建需要使用的处理线程队列,并在主线程中维护处理线程队列。
步骤102:消息处理器监听广播端口;
消息处理器通过监听本地广播地址127.0.0.1监听广播端口。
步骤103:主线程在第一传输端口接收到第一外部设备的消息后,将第一传输端口接收到的消息广播到消息处理器监听的广播端口,以将消息放入所述消息处理器的消息队列中;
在业务处理过程中需要与外部设备进行交互。本发明中第一传输端口与第一外部设备建立连接,接收第一外部设备发送的消息。第一传输端口将第一外部设备发送的消息传输到主线程。主线程将第一传输端口接收到的消息广播到广播端口,从而将第一传输端口接收到的消息加入到消息处理器的消息队列中。
步骤104:消息处理器处理消息队列中的消息,创建需要处理的事务,将需要处理的事务分配给处理线程队列中空闲的处理线程,以使处理线程进行事务的处理。
消息处理器根据待处理的消息创建需要处理的事务,例如,消息处理器在待处理的消息为呼叫请求消息时,创建语音传输通道。在创建需要处理的事务后,将需要处理的事务分配给主线程创建的处理线程队列中空闲的处理线程,处理线程进行事务的处理,实现业务。
进一步,消息处理器在处理主线程广播的第一传输端口接收到的消息后,向主线程发送回应消息;主线程在接收到回应消息后,按照业务逻辑调用第一功能模块通过第二传输端口向第二外部设备发送消息。
消息处理器在完成主线程广播的消息的处理后,需要向主线程发送回应消息。根据业务的不同,如果需要进一步与第二外部设备交互,主线程需要根据业务逻辑调用具有相应通信功能的第一功能模块通过与第二外部设备建立连接的第二传输端口向第二外部设备发送消息。
进一步,第一功能模块在通过第二传输端口向第二外部设备发送消息后,接收并处理第二外部设备通过第二传输端口返回的消息,并向主线程返回消息;主线程接收第一功能模块返回的消息。
进一步,主线程在接收到第一功能模块返回的消息后,调用第二功能模块通过第一传输端口向第一外部设备返回消息。
主线程在接收到第一功能模块返回的消息后,根据业务的不同,如果需要继续向第一外部设备返回消息,则主线程调用具有相应通信功能的第二功能模块通过第一传输端口向第一外部设备返回消息。
上述第一传输端口为传输控制协议(TCP)端口,第二传输端口为用户数据报协议(UDP)端口。相应的,第一功能模块为提供UDP通信功能的功能模块,第二功能模块为提供TCP通信功能的功能模块。
下面以业务服务器采用本发明的方法实现根据管理服务器(PCMS)的消息完成PCS与呼叫服务器之间的语音数据传输为例,对本发明的方法进行说明。
为保证方法的实现,需要在业务服务器的配置文件中进行设置:
(a)业务服务器IP、管理服务器IP和管理服务器端口,用于建立业务服务与服务器之间的TCP连接。
(b)业务服务器的广播端口,用于业务服务器内部的消息处理器监听。
业务服务器启动后,首先根据配置文件中的配置信息,获得管理服务器的IP和端口,通过TCP端口与管理服务器建立TCP连接,然后向管理服务器发送注册消息,管理服务器返回消息交互对方信息,实现注册。注册消息的目是为了保证业务服务器的扩展性。
业务服务器的配置文件可以采用lua格式,可以通过lua格式解析器获得配置文件中的配置信息。
如图2所示,PCMS通过TCP协议与业务服务器进行交互,PCS和呼叫服务器通过UDP协议与业务服务器交互,采用本发明的方法实现业务处理的过程包括:
步骤201:主线程创建并维护处理线程队列,消息处理器监听广播端口;
消息处理器通过本地广播地址127.0.0.1,建立内部消息监听。当此端口接收到广播消息后,放入消息处理器的消息队列中。
步骤202:业务服务器的TCP端口接收PCMS发送的消息(如呼叫请求消息),将PCMS发送的消息通过TCP连接模块传输到主线程;
步骤203:主线程将TCP端口接收到的PCMS的消息广播到消息处理器监听的广播端口,从而将PCMS的消息放入到消息处理器的消息队列中;
步骤204:消息处理器根据PCMS发送的消息创建数据传输通道,将数据传输通道挂接在处理线程队列中空闲的处理线程,以使处理线程进行PCS与呼叫服务器之间的语音数据传输;
步骤205:消息处理完成后,消息处理器向主线程发送回应消息;
步骤206:主线程在接收到消息处理器的回应消息后,调用sip模块通过UDP端口向呼叫服务器发送消息(如邀请消息);
步骤207:sip模块处理呼叫服务器返回的消息,并向主线程返回消息;
步骤208:主线程接收到sip模块返回的消息后,调用TCP连接模块向PCMS返回消息。
本发明将多线程管理和子模块线程业务逻辑管理都放在主线程中完成,不需要处理线程间同步、通讯等问题。
如图3所示,本发明还提供了一种业务处理装置,包括:分发单元和处理单元,其中:
分发单元,用于控制主线程创建并维护处理线程队列,并在第一传输端口接收到第一外部设备的消息后,将第一传输端口接收到的消息广播到消息处理器监听的广播端口,以将消息放入消息处理器的消息队列中;
处理单元,用于控制消息处理器监听广播端口,处理消息队列中的消息,创建需要处理的事务,将需要处理的事务分配给处理线程队列中空闲的处理线程,以使处理线程进行事务的处理。
进一步,处理单元,还用于控制消息处理器在处理主线程广播的第一传输端口接收到的消息后,向主线程发送回应消息;
分发单元,还用于控制主线程在接收到回应消息后,按照业务逻辑调用第一功能模块通过第二传输端口向第二外部设备发送消息。
进一步,分发单元,还用于控制主线程接收第一功能模块返回的消息,第一功能模块返回的消息是该第一功能模块在通过第二传输端口向第二外部设备发送消息,接收并处理第二外部设备通过第二传输端口返回的消息后,发送给主线程。
进一步,分发单元,还用于控制主线程在接收到第一功能模块返回的消息后,调用第二功能模块通过第一传输端口向第一外部设备返回消息。
进一步,第一传输端口为传输控制协议TCP端口,第二传输端口为用户数据报协议UDP端口。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种业务处理方法,其特征在于,包括:
主线程创建并维护处理线程队列;
消息处理器监听广播端口;
所述主线程在第一传输端口接收到第一外部设备的消息后,将所述第一传输端口接收到的消息广播到所述消息处理器监听的广播端口,以将消息放入所述消息处理器的消息队列中;
所述消息处理器处理消息队列中的消息,创建需要处理的事务,将需要处理的事务分配给所述处理线程队列中空闲的处理线程,以使处理线程进行事务的处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述消息处理器在处理所述主线程广播的第一传输端口接收到的消息后,向所述主线程发送回应消息;
所述主线程在接收到所述回应消息后,按照业务逻辑调用第一功能模块通过第二传输端口向第二外部设备发送消息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一功能模块在通过第二传输端口向第二外部设备发送消息后,接收并处理所述第二外部设备通过所述第二传输端口返回的消息,并向所述主线程返回消息;
所述主线程接收所述第一功能模块返回的消息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述主线程在接收到所述第一功能模块返回的消息后,调用第二功能模块通过所述第一传输端口向所述第一外部设备返回消息。
5.根据权利要求2、3或4所述的方法,其特征在于,所述第一传输端口为传输控制协议TCP端口,所述第二传输端口为用户数据报协议UDP端口。
6.一种业务处理装置,其特征在于,包括:分发单元和处理单元,其中:
所述分发单元,用于控制主线程创建并维护处理线程队列,并在第一传输端口接收到第一外部设备的消息后,将所述第一传输端口接收到的消息广播到消息处理器监听的广播端口,以将消息放入消息处理器的消息队列中;
所述处理单元,用于控制消息处理器监听广播端口,处理消息队列中的消息,创建需要处理的事务,将需要处理的事务分配给所述处理线程队列中空闲的处理线程,以使处理线程进行事务的处理。
7.根据权利要求6所述的装置,其特征在于:
所述处理单元,还用于控制消息处理器在处理所述主线程广播的第一传输端口接收到的消息后,向所述主线程发送回应消息;
所述分发单元,还用于控制主线程在接收到所述回应消息后,按照业务逻辑调用第一功能模块通过第二传输端口向第二外部设备发送消息。
8.根据权利要求7所述的装置,其特征在于:
所述分发单元,还用于控制主线程接收所述第一功能模块返回的消息,所述第一功能模块返回的消息是该第一功能模块在通过第二传输端口向第二外部设备发送消息,接收并处理所述第二外部设备通过所述第二传输端口返回的消息后,发送给所述主线程。
9.根据权利要求8所述的装置,其特征在于:
所述分发单元,还用于控制主线程在接收到所述第一功能模块返回的消息后,调用第二功能模块通过所述第一传输端口向所述第一外部设备返回消息。
10.根据权利要求7、8或9所述的装置,其特征在于,所述第一传输端口为传输控制协议TCP端口,所述第二传输端口为用户数据报协议UDP端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510883146.XA CN105528254B (zh) | 2015-12-07 | 2015-12-07 | 一种业务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510883146.XA CN105528254B (zh) | 2015-12-07 | 2015-12-07 | 一种业务处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105528254A CN105528254A (zh) | 2016-04-27 |
CN105528254B true CN105528254B (zh) | 2019-02-22 |
Family
ID=55770498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510883146.XA Active CN105528254B (zh) | 2015-12-07 | 2015-12-07 | 一种业务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105528254B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055367B (zh) * | 2016-06-01 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 一种脚本文件载入方法及装置 |
CN106936825B (zh) | 2017-03-10 | 2021-07-27 | Oppo广东移动通信有限公司 | 一种控制广播发送的方法、装置及移动终端 |
CN106919460A (zh) | 2017-03-10 | 2017-07-04 | 广东欧珀移动通信有限公司 | 一种控制广播发送的方法、装置及移动终端 |
CN106937258B (zh) | 2017-03-10 | 2019-07-12 | Oppo广东移动通信有限公司 | 一种广播的控制方法、装置及移动终端 |
CN108460078B (zh) * | 2018-01-08 | 2020-10-13 | 平安科技(深圳)有限公司 | 辅助功能的执行方法、装置、存储介质及终端 |
CN110018911B (zh) * | 2018-01-09 | 2024-01-23 | 斑马智行网络(香港)有限公司 | 进程管理及进程间通信方法、装置、计算设备及存储介质 |
CN109032767B (zh) * | 2018-07-26 | 2021-04-02 | 苏州科达科技股份有限公司 | 异步多进程的业务处理系统、方法、装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1225105C (zh) * | 2002-12-26 | 2005-10-26 | 北京邮电大学 | 一种适用于应用服务器的呼叫处理方法 |
EP2134058B1 (en) * | 2008-06-12 | 2012-11-21 | Alcatel Lucent | Method for protecting a packet based network and border node protection system |
CN101882089B (zh) * | 2009-05-07 | 2013-05-08 | 中兴通讯股份有限公司 | 一种采用多线程处理业务会话应用的方法及装置 |
CN103139529B (zh) * | 2013-02-22 | 2015-10-21 | 青岛海信宽带多媒体技术有限公司 | Sip服务器、视频通话设备间的视频通话切换方法 |
-
2015
- 2015-12-07 CN CN201510883146.XA patent/CN105528254B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105528254A (zh) | 2016-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105528254B (zh) | 一种业务处理方法及装置 | |
CN108270732B (zh) | 一种流媒体处理方法及系统 | |
ES2719529T3 (es) | Procedimiento de procesamiento y aparato de control, aparato de distribución automática de llamadas y terminal agente | |
CN102801961A (zh) | 一种基于多进程的音视频数据处理方法及系统 | |
CN103746959B (zh) | OSGi环境下Java模块和C模块的通信机制的实现方法 | |
EP3515032B1 (en) | Port multiplexing method and server in video conference system and computer storage medium | |
CN108810444A (zh) | 视频会议的处理方法、会议调度端和协转服务器 | |
CN102811174A (zh) | 一种监控业务处理方法和nvr | |
CN113098985B (zh) | 一种会话管理方法及调度服务器 | |
WO2022241990A1 (zh) | 一种媒体传输链路管理方法、装置及存储介质 | |
CN108566390B (zh) | 一种卫星消息监听与分发服务系统 | |
CN104580209A (zh) | 实现多平台消息处理的装置及方法 | |
CN106789099A (zh) | 基于pcie的高速隔离网络方法及终端 | |
WO2020233400A1 (zh) | 通信方法、通信系统、云节点和可读存储介质 | |
CN104519014B (zh) | 一种实时传输协议会话处理方法及设备 | |
CN108462650A (zh) | 一种基于tte交换机的输出单元 | |
EP3051805B1 (en) | Endpoint information interaction processing method, apparatus and telepresence endpoint | |
CN103078865A (zh) | 一种基于tcp协议的网络服务器通信模型 | |
CN103856570B (zh) | 多屏互动通话控制方法、主设备及控制系统 | |
CN107070872B (zh) | 一种用于客户端的数据处理方法和装置 | |
CN105577433B (zh) | 一种acs集群管理方法、装置和系统 | |
CN105162634B (zh) | 在同一线程中收发oam协议包的处理方法 | |
CN105245487B (zh) | 远程呈现系统中协议栈的调度方法及装置 | |
CN104125271B (zh) | 一种应用于可视化数据推送平台的分布式架构方法 | |
CN103746935B (zh) | 一种基于应用层协议的带宽合并中间件系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |