CN103209115A - 一种消息发送系统 - Google Patents
一种消息发送系统 Download PDFInfo
- Publication number
- CN103209115A CN103209115A CN2013101171972A CN201310117197A CN103209115A CN 103209115 A CN103209115 A CN 103209115A CN 2013101171972 A CN2013101171972 A CN 2013101171972A CN 201310117197 A CN201310117197 A CN 201310117197A CN 103209115 A CN103209115 A CN 103209115A
- Authority
- CN
- China
- Prior art keywords
- message
- sent
- failure
- transmission
- submodule
- 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
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供一种消息发送系统,能够提高在计算机网络中传输消息的可靠性。本发明的消息发送系统用于将第一系统的消息发送给第二系统,包括:数据库模块,用于在数据库中保存所述消息以及所述消息的发送状态;消息处理模块,用于以数据库事务的方式将所述数据库模块中的所述消息发送给所述第二系统,并且将消息的发送状态返回给所述数据库模块。
Description
技术领域
本发明涉及一种消息发送系统。
背景技术
在使用计算机进行信息处理的各种领域中,常常需要在异构的系统之间进行消息的发送,例如A系统向B系统发送订单消息,C系统向D系统发送用户登录消息等。在实际的计算机系统的运行中,常常因为网络拥挤或设备自身等原因造成消息发送延迟或失败,也就是说消息的传输可靠性不够。
发明内容
有鉴于此,本发明提供一种消息发送系统,能够提高在计算机网络中传输消息的可靠性。
为实现上述目的,本发明提供了一种消息发送系统。
本发明的消息发送系统,用于将第一系统的消息发送给第二系统,所述消息发送系统包括:数据库模块,用于在数据库中保存所述消息以及所述消息的发送状态;消息处理模块,用于以数据库事务的方式将所述数据库模块中的所述消息发送给所述第二系统,并且将消息的发送状态返回给所述数据库模块。
可选地,所述数据库模块包括:待发送单元,用于保存待发送的消息;成功发送单元,用于保存发送成功的消息;失败发送单元,用于保存发送失败的消息。
可选地,所述消息处理模块包括:获取子模块,用于从所述数据库模块中获取待发送的消息并且按预设的消息类型分为多个消息队列,发送子模块,用于将所述消息队列中的消息向所述第二系统发送,并根据所述第二系统返回的表示消息是否发送成功的信息,将发送成功的消息转发给所述成功发送单元,将发送失败的消息转发给所述失败发送单元,扫描子模块,用于从所述数据库模块中获取发送失败的消息然后放入所述获取子模块中;并且所述待发送单元还用于删除所述发送子模块发送过的消息。
可选地,扫描子模块还用于按预设的时间间隔从所述数据库模块中获取发送失败的消息。
可选地,所述获取子模块包括:消息读取单元,用于从所述待发送单元中读取消息并且按预设的消息类型对读取的消息进行分类;队列管理单元,用于将所述消息读取单元分类得到的多组消息各自形成消息队列。
可选地,所述消息读取单元还用于按预设的时间间隔从所述待发送单元中读取消息。
可选地,所述队列管理单元还用于根据预设方式控制所述消息队列的长度。
可选地,所述发送子模块还用于以先入先出的方式向所述第二系统发送消息。
可选地,所述失败发送单元还用于记录各条消息发送失败的次数;所述扫描子模块还用于在发送失败的消息的被发送次数小于预设值,并且当前时间已达到为该消息设定的下次发送时间的情况下,从所述数据库模块中获取该发送失败的消息。
可选地,所述扫描子模块还用于在发送失败的消息的被发送次数达到预设值,并且当前时间未达到为该消息设定的下次发送时间之前的情况下,输出提示信息。
根据本发明的技术方案,使系统的待发消息保存到数据库中并由数据库事务来保证对待发消息操作的ACID特性即原子性、一致性、持久性,也就是说将网络消息发送操作转化成了一个对数据库的ACID操作,从而有助于提高消息发送的可靠性。同时消息发送类型、队列大小、轮询时间都可以通过配置文件配置,在有效的提高消息发送的可靠性的同时能够满足各种业务场景的性能需要。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1A是根据本发明实施例的消息发送系统的基本结构的示意图;
图1B是根据本发明实施例的消息发送系统的一种优选结构的示意图;
图2是根据本发明实施例的消息发送系统基本流程的示意图;
图3是根据本发明实施例的发送失败消息处理的一种可选流程的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1A是根据本发明实施例的消息发送系统的基本结构的示意图。如图1A所示,消息发送系统10与系统A以及系统B连接,用来将系统A中的消息发送到系统B中。消息发送系统10中包括数据库模块11和消息处理模块12。数据库模块11用于在数据库中保存消息以及消息的发送状态;消息处理模块12用于以数据库事务的方式将数据库模块中的消息发送给系统B,并且将消息的发送状态返回给数据库模块。采用图1所示的消息发送系统,能够使系统A的待发消息保存到数据库中并由数据库事务来保证对待发消息操作的ACID特性即原子性、一致性、持久性,也就是说将网络消息发送操作转化成了一个对数据库的ACID操作,从而有助于提高消息发送的可靠性。
以下结合图1B对本发明实施例的优选方式做出说明。图1B是根据本发明实施例的消息发送系统的一种优选结构的示意图。
如图1B所示,数据库模块11包括待发送单元111、成功发送单元112、失败发送单元113。待发送单元111用于保存待发送的消息;成功发送单元112用于保存发送成功的消息;失败发送单元113用于保存发送失败的消息。
消息处理模块12包括:获取子模块121、发送子模块122、扫描子模块123。获取子模块121用于从数据库模块11中获取待发送的消息并且按预设的消息类型分为多个消息队列。发送子模块122用于将消息队列中的消息向系统B发送,并根据系统B返回的表示消息是否发送成功的信息,将发送成功的消息转发给成功发送单元112,将发送失败的消息转发给失败发送单元113。扫描子模块123用于从数据库模块11中获取发送失败的消息然后放入获取子模块121中,可按预设的时间间隔来轮询获取。数据库模块11中的待发送单元111还可用于删除发送子模块122发送过的消息。
图1B同时示出了获取子模块121的一种可选结构,其包括消息读取单元1211和队列管理单元1212。消息读取单元1211用于从待发送单元112中读取消息并且按预设的消息类型对读取的消息进行分类,可按预设的时间间隔进行轮询读取;队列管理单元1212用于将消息读取单元1211分类得到的多组消息各自形成消息队列。图中示出了3个队列的情形。在实际中可以根据预设方式控制消息队列的长度以保证系统的稳定性,例如可以根据计算机的内存大小来调整队列长度。发送子模块122在发送消息时可以根据消息队列来相应地组成线程池,可以采用先入先出的方式来管理发送时序。
失败发送单元113还可以用于记录各条消息发送失败的次数,该次数根据发送子模块122提供的发送失败信息来得出,每当收到发送子模块122提供的发送失败信息时,失败发送单元123将发送失败的信息的发送失败的次数加1。或者可以由发送子模块122来统计各条信息发送失败的次数然后将该次数提供给失败发送单元113。扫描子模块123还可用于在发送失败的消息的被发送次数小于预设值,并且当前时间已达到为该消息设定的下次发送时间的情况下,从数据库模块11中获取该发送失败的消息。扫描子模块123也可用于在发送失败的消息的被发送次数达到预设值,并且当前时间未达到为该消息设定的下次发送时间之前的情况下,输出提示信息,这样系统管理员可以进行后续的处理。
以下结合图2和图3对本发明实施例的消息发送系统的运行过程做出说明。图2是根据本发明实施例的消息发送系统基本流程的示意图。图3是根据本发明实施例的发送失败消息处理的一种可选流程的示意图。
在本实施例的消息发送系统进行消息发送时,首先从系统A中获取要发送的消息,以数据库11的规定格式进行保存。然后由获取子模块121扫描待发送单元(步骤S21),然后形成消息队列(步骤S22),再交由发送子模块122进行消息发送(步骤S23),然后根据系统B反馈的发送是否成功的信息判断发送是否成功(步骤S24),若是,则从待发送单元中删除已发送的消息(步骤S25),并进行消息转发(步骤S26),将消息转发给成功发送单元111;否则判断是否需要重新发送(步骤S27)。在需要重新发送的情况下转入发送失败消息处理的流程(步骤S28),否则转入步骤S25。
在本发明实施例的发送失败消息处理的流程中,如图3所示,首先将发送失败次数加1(步骤S31),然后将发送失败的消息保存到失败发送单元113中(步骤S32),再由扫描子模块123扫描失败发送单元113(步骤S33),接下来判断是否达到预设的重发次数(步骤S34),若是,则输出提示信息(步骤S35),否则转入步骤S22,此时将扫描子模块123获取的发送失败的消息重新放入消息队列中。
根据本发明实施例的技术方案,使系统的待发消息保存到数据库中并由数据库事务来保证对待发消息操作的ACID特性即原子性、一致性、持久性,也就是说将网络消息发送操作转化成了一个对数据库的ACID操作,从而有助于提高消息发送的可靠性。同时消息发送类型、队列大小、轮询时间都可以通过配置文件配置,在有效的提高消息发送的可靠性的同时能够满足各种业务场景的性能需要。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种消息发送系统,用于将第一系统的消息发送给第二系统,其特征在于,所述消息发送系统包括:
数据库模块,用于在数据库中保存所述消息以及所述消息的发送状态;
消息处理模块,用于以数据库事务的方式将所述数据库模块中的所述消息发送给所述第二系统,并且将消息的发送状态返回给所述数据库模块。
2.根据权利要求1所述的消息发送系统,其特征在于,所述数据库模块包括:
待发送单元,用于保存待发送的消息;
成功发送单元,用于保存发送成功的消息;
失败发送单元,用于保存发送失败的消息。
3.根据权利要求2所述的消息发送系统,其特征在于,
所述消息处理模块包括:
获取子模块,用于从所述数据库模块中获取待发送的消息并且按预设的消息类型分为多个消息队列,
发送子模块,用于将所述消息队列中的消息向所述第二系统发送,并根据所述第二系统返回的表示消息是否发送成功的信息,将发送成功的消息转发给所述成功发送单元,将发送失败的消息转发给所述失败发送单元,
扫描子模块,用于从所述数据库模块中获取发送失败的消息然后放入所述获取子模块中;
并且所述待发送单元还用于删除所述发送子模块发送过的消息。
4.根据权利要求3所述的消息发送系统,其特征在于,扫描子模块还用于按预设的时间间隔从所述数据库模块中获取发送失败的消息。
5.根据权利要求3所述的消息发送系统,其特征在于,所述获取子模块包括:
消息读取单元,用于从所述待发送单元中读取消息并且按预设的消息类型对读取的消息进行分类;
队列管理单元,用于将所述消息读取单元分类得到的多组消息各自形成消息队列。
6.根据权利要求5所述的消息发送系统,其特征在于,所述消息读取单元还用于按预设的时间间隔从所述待发送单元中读取消息。
7.根据权利要求5所述的消息发送系统,其特征在于,所述队列管理单元还用于根据预设方式控制所述消息队列的长度。
8.根据权利要求3至7中任一项所述的消息发送系统,其特征在于,所述发送子模块还用于以先入先出的方式向所述第二系统发送消息。
9.根据权利要求3至7中任一项所述的消息发送系统,其特征在于,
所述失败发送单元还用于记录各条消息发送失败的次数;
所述扫描子模块还用于在发送失败的消息的被发送次数小于预设值,并且当前时间已达到为该消息设定的下次发送时间的情况下,从所述数据库模块中获取该发送失败的消息。
10.根据权利要求9所述的消息发送系统,其特征在于,
所述扫描子模块还用于在发送失败的消息的被发送次数达到预设值,并且当前时间未达到为该消息设定的下次发送时间之前的情况下,输出提示信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101171972A CN103209115A (zh) | 2013-04-07 | 2013-04-07 | 一种消息发送系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101171972A CN103209115A (zh) | 2013-04-07 | 2013-04-07 | 一种消息发送系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103209115A true CN103209115A (zh) | 2013-07-17 |
Family
ID=48756205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101171972A Pending CN103209115A (zh) | 2013-04-07 | 2013-04-07 | 一种消息发送系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103209115A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105491115A (zh) * | 2015-11-25 | 2016-04-13 | 努比亚技术有限公司 | 消息推送装置及方法 |
CN105512244A (zh) * | 2015-11-30 | 2016-04-20 | 北京京东尚科信息技术有限公司 | 基于消息队列实现数据库事务处理的方法及装置 |
CN105930339A (zh) * | 2016-03-31 | 2016-09-07 | 北京奇虎科技有限公司 | 提高消息传输可靠性的方法和系统 |
CN106130868A (zh) * | 2016-06-02 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 一种回调消息的处理方法和队列管理系统 |
CN107222530A (zh) * | 2017-05-23 | 2017-09-29 | 努比亚技术有限公司 | 服务异步交互方法、设备、系统和可读介质 |
CN108121580A (zh) * | 2016-11-28 | 2018-06-05 | 腾讯科技(深圳)有限公司 | 应用程序通知服务的实现方法及装置 |
CN108228363A (zh) * | 2017-12-22 | 2018-06-29 | 中国银联股份有限公司 | 一种消息发送方法及装置 |
CN109728883A (zh) * | 2018-12-13 | 2019-05-07 | 中国银行股份有限公司 | 数据交互方法及系统、源系统、目标系统 |
CN105630635B (zh) * | 2015-12-29 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 数据容灾系统和方法 |
CN112953769A (zh) * | 2021-02-10 | 2021-06-11 | 中国工商银行股份有限公司 | 数据传输方法、装置、计算机系统及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1822533A (zh) * | 2006-03-27 | 2006-08-23 | 阿里巴巴公司 | 一种可靠的系统间消息通知方法和系统 |
CN101075969A (zh) * | 2007-07-20 | 2007-11-21 | 中国建设银行股份有限公司 | 一种控制数据传输的方法、装置和一种数据传输系统 |
CN103023750A (zh) * | 2012-08-01 | 2013-04-03 | 福建星网视易信息系统有限公司 | 终端获取消息的方法 |
-
2013
- 2013-04-07 CN CN2013101171972A patent/CN103209115A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1822533A (zh) * | 2006-03-27 | 2006-08-23 | 阿里巴巴公司 | 一种可靠的系统间消息通知方法和系统 |
CN101075969A (zh) * | 2007-07-20 | 2007-11-21 | 中国建设银行股份有限公司 | 一种控制数据传输的方法、装置和一种数据传输系统 |
CN103023750A (zh) * | 2012-08-01 | 2013-04-03 | 福建星网视易信息系统有限公司 | 终端获取消息的方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105491115A (zh) * | 2015-11-25 | 2016-04-13 | 努比亚技术有限公司 | 消息推送装置及方法 |
CN105512244B (zh) * | 2015-11-30 | 2019-03-01 | 北京京东尚科信息技术有限公司 | 基于消息队列实现数据库事务处理的方法及装置 |
CN105512244A (zh) * | 2015-11-30 | 2016-04-20 | 北京京东尚科信息技术有限公司 | 基于消息队列实现数据库事务处理的方法及装置 |
CN105630635B (zh) * | 2015-12-29 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 数据容灾系统和方法 |
CN105930339A (zh) * | 2016-03-31 | 2016-09-07 | 北京奇虎科技有限公司 | 提高消息传输可靠性的方法和系统 |
CN105930339B (zh) * | 2016-03-31 | 2019-05-31 | 北京奇虎科技有限公司 | 提高消息传输可靠性的方法和系统 |
CN106130868A (zh) * | 2016-06-02 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 一种回调消息的处理方法和队列管理系统 |
CN108121580A (zh) * | 2016-11-28 | 2018-06-05 | 腾讯科技(深圳)有限公司 | 应用程序通知服务的实现方法及装置 |
CN108121580B (zh) * | 2016-11-28 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 应用程序通知服务的实现方法及装置 |
CN107222530A (zh) * | 2017-05-23 | 2017-09-29 | 努比亚技术有限公司 | 服务异步交互方法、设备、系统和可读介质 |
CN108228363A (zh) * | 2017-12-22 | 2018-06-29 | 中国银联股份有限公司 | 一种消息发送方法及装置 |
CN109728883A (zh) * | 2018-12-13 | 2019-05-07 | 中国银行股份有限公司 | 数据交互方法及系统、源系统、目标系统 |
CN109728883B (zh) * | 2018-12-13 | 2022-02-25 | 中国银行股份有限公司 | 数据交互方法及系统、源系统、目标系统 |
CN112953769A (zh) * | 2021-02-10 | 2021-06-11 | 中国工商银行股份有限公司 | 数据传输方法、装置、计算机系统及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103209115A (zh) | 一种消息发送系统 | |
US11188380B2 (en) | Method and apparatus for processing task in smart device | |
KR20220062101A (ko) | 정보 송신 방법, 장치, 판독 가능한 매체 및 전자 장치 | |
CN102890631A (zh) | 基于持久化消息队列传输消息的方法及消息传输装置 | |
CN104009938A (zh) | 基于路由层面的长连接的方法和系统 | |
CN110808948B (zh) | 远程过程调用方法、装置及系统 | |
CN104917586A (zh) | 传输数据的校验方法、装置及系统 | |
CN102098330A (zh) | 基于json数据格式的异步传输方法、装置及系统 | |
CN102868759B (zh) | 服务器控制浏览器界面数据刷新的系统及其方法 | |
CN103634203A (zh) | 消息异步传输方法、装置和系统 | |
US9106596B2 (en) | Method and apparatus of configuring a data broadcast service | |
CN110324384B (zh) | 数据推送的方法和装置 | |
CN117579611A (zh) | 数据传输方法、装置、存储介质及电子装置 | |
CN112714159A (zh) | 消息转发方法和装置、存储介质及电子装置 | |
CN109936609A (zh) | 终端链式升级方法、装置及升级管理服务器 | |
CN110620722A (zh) | 一种订单处理的方法和装置 | |
CN105281943A (zh) | 一种基于网页的远程设备管理方法和装置 | |
CN104767589A (zh) | 一种信息发送方法及装置 | |
CN105721179A (zh) | 日志收集系统及其中的数据传输方法和本地服务器 | |
CN105281940A (zh) | 一种基于netconf协议的hello报文交互的方法、设备和系统 | |
US9647966B2 (en) | Device, method and non-transitory computer readable storage medium for performing instant message communication | |
CN111404842A (zh) | 数据传输方法、装置及计算机存储介质 | |
CN103503358A (zh) | 一种群组资源交互消息的方法及其装置 | |
CN103051678A (zh) | 一种高可靠性的数据通信方法和装置 | |
CN109547277A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130717 |