CN107786623B - 消息异步处理方法和装置 - Google Patents
消息异步处理方法和装置 Download PDFInfo
- Publication number
- CN107786623B CN107786623B CN201610835127.4A CN201610835127A CN107786623B CN 107786623 B CN107786623 B CN 107786623B CN 201610835127 A CN201610835127 A CN 201610835127A CN 107786623 B CN107786623 B CN 107786623B
- Authority
- CN
- China
- Prior art keywords
- message
- message data
- data
- terminal
- server
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种消息异步处理方法和装置,所述方法包括:拉取消息数据;将所述消息数据写入缓存,所述消息数据包括消息内容和终端标识,所述终端标识与用户终端对应,所述用户终端与第一服务器连接;在缓存中读取消息数据,将读取到的消息数据发送至与终端标识对应的第一服务器,以使得所述第一服务器将所述消息内容发送至与所述终端标识对应的客户终端,并且返回对应的状态数据;接收所述状态数据,将所述消息数据和对应的状态数据映射至数据库进行保存。采用本方法能够有效提高海量消息发送效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种消息异步处理方法和装置。
背景技术
目前保险已逐步深入到了人们的日常生活中,保险种类也是日益繁多。为了能够让客户更便捷的了解保险信息,保险公司通常会主动向客户发送各种消息。在传统的方式中,后台会将各种各样需要发送的消息先写入数据库,然后再从数据库中读取出来,将消息发送至运营商服务器,通过运营商服务器将消息发送至用户终端。由于每条消息的读写都需要耗费一定的时间,当消息的数量达到百万甚至千万级别时,这种传统的方式,势必会导致消息发送效率下降。面对海量消息时如何有效提高发送效率成为目前需要解决的一个技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效提高海量消息发送效率的消息异步处理方法和装置。
一种消息异步处理方法,所述方法包括:
拉取消息数据;
将所述消息数据写入缓存,所述消息数据包括消息内容和终端标识,所述终端标识与用户终端对应,所述用户终端与第一服务器连接;
在缓存中读取消息数据,将读取到的消息数据发送至与终端标识对应的第一服务器,以使得所述第一服务器将所述消息内容发送至与所述终端标识对应的客户终端,并且返回对应的状态数据;
接收所述状态数据,将所述消息数据和对应的状态数据映射至数据库进行保存。
在其中一个实施例中,所述消息数据和状态数据通过主键标识进行关联,所述将所述消息数据和对应的状态数据映射至数据库进行保存的步骤包括:
查询数据库中是否存在状态数据对应的主键标识;
若存在,则根据所述主键标识将所述状态数据在数据库中进行更新;
否则,根据所述主键标识将所述消息数据和状态数据映射至数据库进行保存。
在其中一个实施例中,在所述将读取到的消息数据发送至与终端标识对应的第一服务器的步骤之前,还包括:
根据消息模板标识的优先级确定消息数据对应的优先级;
根据所述优先级将消息数据分为多个队列;
所述将读取到的消息数据发送至与终端标识对应的第一服务器的步骤包括:
提取所述消息数据中的终端标识,采用多个线程对多个队列中的消息内容按照所述优先级发送至与终端标识对应的第一服务器。
在其中一个实施例中,所述拉取消息数据的步骤包括:
对所述终端标识进行计数,判断所述终端标识在第一预设时间内的累计数量是否大于第一预设数量;
若是,则根据所述终端标识拉取第一预设数量的消息数据,并且拒绝拉取所述终端标识对应的超出第一预设数量的消息数据。
在其中一个实施例中,所述方法还包括:
若在第二预设时间内超出第二预设数量的消息数据未被发送,则生成告警信息,并将所述告警信息发送至运营终端,所述运营终端用于远程处理异常状况,所述告警信息中包括异常网关;
接收所述运营终端发送的网关切换指令,根据所述网关切换指令关闭所述异常网关,切换至其他网关来处理未被发送的消息数据。
一种消息异步处理装置,所述装置包括:
获取模块,用于拉取消息数据;
数据访问模块,用于将所述消息数据写入缓存,所述消息数据包括消息内容和终端标识,所述终端标识与用户终端对应,所述用户终端与第一服务器连接;
所述数据访问模块还用于在缓存中读取消息数据;
发送模块,用于将读取到的消息数据发送至与终端标识对应的第一服务器,以使得所述第一服务器将所述消息内容发送至与所述终端标识对应的客户终端,并且返回对应的状态数据;
接收模块,用于接收所述状态数据;
保存模块,用于将所述消息数据和对应的状态数据映射至数据库进行保存。
在其中一个实施例中,所述消息数据和状态数据通过主键标识进行关联,所述保存模块还用于查询数据库中是否存在状态数据对应的主键标识;若存在,则根据所述主键标识将所述状态数据在数据库中进行更新;否则,根据所述主键标识将所述消息数据和状态数据映射至数据库进行保存。
在其中一个实施例中,所述数据访问模块还用于根据消息模板标识的优先级确定消息数据对应的优先级;根据所述优先级将消息数据分为多个队列;所述发送模块还用于提取所述消息数据中的终端标识,采用多个线程对多个队列中的消息内容按照所述优先级发送至与终端标识对应的第一服务器。
在其中一个实施例中,所述获取模块还用于对所述终端标识进行计数,判断所述终端标识在第一预设时间内的累计数量是否大于第一预设数量;若是,则根据所述终端标识拉取第一预设数量的消息数据,并且拒绝拉取所述终端标识对应的超出第一预设数量的消息数据。
在其中一个实施例中,所述发送模块还用于若在第二预设时间内超出第二预设数量的消息数据未被发送,则生成告警信息,并将所述告警信息发送至运营终端,所述运营终端用于远程处理异常状况,所述告警信息中包括异常网关;所述接收模块还用于接收所述运营终端发送的网关切换指令;
所述装置还包括:
切换模块,用于根据所述网关切换指令关闭所述异常网关,切换至其他网关来处理未被发送的消息数据。
上述消息异步处理方法和装置,在拉取到消息数据之后,先将消息数据写入缓存,然后从缓存中读取消息数据。读取到的消息数据中携带了消息内容和终端标识。通过根据终端标识来确定对应的第一服务器,将消息数据发送至第一服务器,从而使得第一服务器将消息内容发送至于终端标识对应的用户终端。由此使得用户能够了解消息内容。在接收到状态数据后,将消息数据和对应的状态数据映射至数据库进行保存。由于消息数据的读写操作都是通过缓存来进行的而不是通过数据库来进行的,相比将消息数据直接写入数据库能够有效减少耗时。消息数据发送后,再将发送状态对应的状态数据和消息数据映射至数据进行保存。由此通过异步处理的方式有效提高了海量消息的发送效率。
附图说明
图1为一个实施例中消息异步处理方法的应用环境图;
图2为一个实施例中消息异步处理方法的流程图;
图3为一个实施例中服务器的结构示意图;
图4为一个实施例中消息异步处理装置的结构示意图;
图5为又一个实施例中消息异步处理装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中提供的消息异步处理方法,可以应用于如图1所示的应用环境中。第二服务器102通过网络与后台服务器104连接。第一服务器106通过网络与后台服务器104连接。后台服务器104通过调用数据接口可以从第二服务器102拉取消息数据。后台服务器104将拉取到的消息数据写入缓存,而不是直接将消息数据写入数据库。后台服务器104根据消息数据中携带的终端标识确定对应的第一服务器106。终端标识对应的用户终端108通过网络与第一服务器106连接。后台服务器104在缓存中读取消息数据,将消息数据发送至于终端标识对应的第一服务器106。第一服务器106提取消息数据中携带的消息内容,将消息内容发送至与终端标识对应的用户终端108。在消息数据发送之后,第一服务器106向后台服务器104返回状态数据。后台服务器104接收状态数据,将消息数据和对应的状态数据映射保持至数据库中。由于消息数据的读写操作都是通过缓存来进行的而不是通过数据库来进行的,消息数据是在发送之后才保存至数据库中的。由此通过异步处理的方式有效提高了海量消息的发送效率。
在一个实施例中,如图2所示,提供了一种消息异步处理方法,以该方法应用于后台服务器为例进行说明,具体包括以下步骤:
步骤202,拉取消息数据。
步骤204,将消息数据写入缓存,消息数据包括消息内容和终端标识,终端标识与用户终端对应,用户终端与第一服务器连接。
后台服务器通过网络分别与第二服务器、第一服务器连接。其中,第二服务器是各个机构所采用的服务器,可以是独立服务器,也可以是分布式服务器集群。第二服务器上可以部署一个数据库,也可以部署多个数据库。第二服务器向后台服务器开通了数据接口。后台服务器通过调用这些数据接口可以从第二服务器拉取消息数据。例如,后台服务器可以通过调用EJB(Enterprise JavaBean,一种服务器端的组件模型)或HTTP(HyperTextTransfer Protocol,超文本传输协议)接口从第二服务器拉取消息数据。当第二服务器上配置了多个数据库时,后台服务器通过调用数据接口同步从多个数据库中拉取消息数据。后台服务器从第二服务器中拉取到的消息数据可以是海量的。
消息数据包括消息内容和终端标识。其中,终端标识与用户终端对应,用户终端与第一服务器连接。终端标识可以是手机号码、应用程序账号或者电子邮箱等。后台服务器根据终端标识确定对应的第一服务器。当终端标识为手机号码时,第一服务器可以是第一服务器;当终端标识为应用程序账号时,第一服务器可以是应用程序运行的服务器;当终端标识为电子邮箱时,第一服务器可以是电子邮箱服务器。
为了有效提高海量消息数量的访问效率,后台服务器将拉取到的消息数据写入缓存,而不是直接将消息数据写入数据库。由于将消息数据写入缓存的耗时要低于写入数据库的耗时,从而能够有效减少后台服务器对海量的消息数据进行发送所需要的总耗时。
步骤206,在缓存中读取消息数据,将读取到的消息数据发送至与终端标识对应的第一服务器,以使得第一服务器将消息内容发送至与终端标识对应的客户终端,并且返回对应的状态数据。
后台服务器在缓存中读取消息数据,将消息数据发送至于终端标识对应的第一服务器。第一服务器接收消息数据,提取出消息内容,将消息内容发送至于终端标识对应的客户终端。由此使得客户能够了解到消息内容。第一服务器将消息内容发送至客户终端后,获取发送状态对应的状态数据,并将状态数据返回至后台服务器。
步骤208,接收状态数据,将消息数据和对应的状态数据映射至数据库进行保存。
后台服务器接收第一服务器返回的状态数据,将消息数据和对应的状态数据映射保持至数据库中。
本实施例中,在拉取消息数据之后,先将消息数据写入缓存,然后从缓存中读取消息数据。读取到的消息数据中携带了消息内容和终端标识。通过根据终端标识来确定对应的第一服务器,将消息数据发送至第一服务器,从而使得第一服务器将消息内容发送至于终端标识对应的用户终端。由此使得用户能够了解消息内容。在接收到第一服务器返回的状态数据后,将消息数据和对应的状态数据映射至数据库进行保存。由于消息数据的读写操作都是通过缓存来进行的而不是通过数据库来进行的,相比将消息数据直接写入数据库能够有效减少耗时。消息数据发送后,再将发送状态对应的状态数据和消息数据映射至数据进行保存。由此通过异步处理的方式有效提高了海量消息的发送效率。
在一个实施例中,消息数据和状态数据通过主键标识进行关联,将消息数据和对应的状态数据映射至数据库进行保存的步骤包括:查询数据库中是否存在状态数据对应的主键标识;若存在,则根据主键标识将状态数据在数据库中进行更新;否则,根据主键标识将消息数据和状态数据映射至数据库进行保存。
本实施例中,后台服务器读取到的消息数据中还包括主键标识。第一服务器向后台服务器返回的状态数据中也包括主键标识。消息数据的主键标识与对应的状态数据的主键标识相同,由此通过主键标识将消息数据与状态数据进行关联。
由于第一服务器向后台服务器返回状态数据的速度要比后台服务器将消息数据写入数据库的速度要快的多,因此如果将状态数据和消息数据同时写入数据库的话,很可能会造成数据丢失。为了防止出现数据丢失的问题,后台服务器在将状态数据写入数据库时会在数据库中查询是否有对应的主键标识。如果在数据库中查询到该主键标识,表示消息数据已经写入数据库,后台服务器可以根据主键标识只在数据库中更新对应的状态数据即可。如果没有查询到该主键标识,表示消息数据尚未写入数据库,后台服务器将短信数据和状态数据映射至数据库进行保存。由此确保写入数据库的数据不会丢失。
在一个实施例中,在将读取到的消息数据发送至与终端标识对应的第一服务器的步骤之前,还包括:获取消息数据对应的消息模板标识,根据消息模板标识的优先级确定消息数据对应的优先级;根据优先级将消息数据分为多个队列;将读取到的消息数据发送至与终端标识对应的第一服务器的步骤包括:提取消息数据中的终端标识,采用多个线程对多个队列中的消息内容按照优先级发送至与终端标识对应的第一服务器。
本实施例中,不同的消息数据采用不同的消息模板。后台服务器可以对不同的消息模板设置不同的优先级。采用优先级高的消息模板生成的消息数据,被异步处理的优先级也相应的要高。后台服务器可以获取消息数据对应的消息模板标识,根据消息模板标识的优先级得到异步处理消息数据的优先级。后台服务器根据该优先级将消息数据分为多个队列。不同队列对应不同的发送通道和不同的线程。后台服务器在消息数据中提取终端标识,通过多个线程将多个队列中的消息内容按照该优先级和队列对应的发送通道分别发送至与终端标识对应的第一服务器。其中,优先级高的消息数据,通过线程优先进行发送。对于优先级相同的消息数据,后台服务器获取消息数据写入缓存的时间,根据写入时间来确认发送顺序。先写入缓存的消息数据先发送。通过根据消息模板标识对应的优先级来确认消息数据发送的优先级,并通过多个队列的形式按照该优先级进行发送,由此有效提高了消息数据的发送效率。
在一个实施例中,拉取消息数据的步骤包括:对终端标识进行计数,判断终端标识在第一预设时间内的累计数量是否大于第一预设数量;若是,则根据终端标识拉取第一预设数量的消息数据,并且拒绝拉取终端标识对应的超出第一预设数量的消息数据。
本实施例中,后台服务器调用数据接口拉取第二服务器的消息数据时,对消息数据中携带的终端标识进行计数。后台服务器可以利用redis对终端标识进行计数,具体的,后台服务器可以采用key-value的形式对终端标识进行计数。其中,key表示终端标识,value表示终端标识的累计数量。为了避免对用户造成不必要的打扰,后台服务器可以控制消息数据的发送频率。后台服务器判断第一预设时间内的终端标识对应的累计数量是否大于第一预设数量,若是,则表示向该终端标识发送的消息数据的频率超过了设定的发送频率,从而不再继续拉取该终端标识对应的消息数据。消息的发送频率可以设定为每天一次、每周一次或每周两次等。不同业务类型的消息可以设定不同的发送频率。当终端标识在第一预设时间内的累计数量是否大于第一预设数量时,后台服务器根据终端标识在第二服务器中拉取第一预设数量的消息数据,并且拒绝拉取终端标识对应的超出第一预设数量的消息数据。由此通过控制消息数据的发送频率来限制消息数据被频繁的发送给用户,以此避免对用户造成不必要的骚扰。
在一个实施例中,该方法还包括:若在第二预设时间内超出第二预设数量的消息数据未被发送,则生成告警信息,并将告警信息发送至运营终端,运营终端用于远程处理异常状况,告警信息中包括异常网关;接收运营终端发送的网关切换指令,根据网关切换指令关闭异常网关,切换至其他网关来处理未被发送的消息数据。
本实施例中,后台服务器可以根据终端标识获得对应的网关,通过网关将消息数据发送至第一服务器。当终端标识为手机号码时,网关可以是运营商网关;当终端标识为应用程序账号时,网关可以是应用程序网关;当终端标识为电子邮箱时,网关可以是电子邮箱网关。为了确保消息数据能够被及时发送,终端标识对应的网关可以有多个,多个网关可以同时工作。
当在第二时间内超出第二预设数量的消息数据未被发送时,后台服务器生成相应的告警信息。告警信息中包括了异常网关的网关标识。后台服务器将告警信息发送至运营终端。其中,告警信息可以是短信、网络消息或电子邮件等。运营终端是运营人员所使用的终端,用于远程处理异常状况,可以是手机、电脑或平板电脑等。
运营终端在接收到告警信息之后,运营人员可以通过运营终端向后台服务器发送网关切换指令。网关切换指令中可以包括被关闭的异常网关以及被开启的其他正常工作的网关。后台服务器根据网关切换指令关闭异常网关,切换至其他网关来处理未被发送的消息数据。在出现告警的情况时,运营人员无需亲临现场即可及时有效的进行远程处理,为运营人员提供了方便,也为处理异常状况节省了时间。
此外,运营终端也可以先向后台服务器先发送异常网关的关闭指令,后台服务器根据关闭指令将异常网关关闭。运营终端再向后台服务器发送其他网关的开启指令,后台服务器根据开启指令中携带的网关标识开启一个正常工作的网关。从而将未被发送的消息数据从异常网关切换至其他正常工作的网关来处理。例如,运营人员通过运营终端向后台服务器发送S+9511,则后台服务器停止网关9511。通过运营终端向后台服务器发送O+9512,则后台服务器启动网关9522,利用9522来发送积压的短信。
在一个实施例中,如图3所示,提供了一种服务器300,包括通过***总线连接的处理器301、内存储器302、非易失性存储介质303和网络接口304。其中,该服务器的非易失性存储介质303中存储有操作***3031和消息异步处理装置3032,消息异步处理装置3032用于有效提高海量消息发送效率。服务器300的处理器301用于提供计算和控制能力,被配置为执行一种消息异步处理方法。服务器300可以是独立服务器,也可以是集群服务器。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图4所示,提供了一种消息异步处理装置,通过网络与第一服务器连接,包括:获取模块402、数据访问模块404、发送模块406、接收模块408和保存模块410,其中:
获取模块402,用于拉取消息数据。
数据访问模块404,用于将消息数据写入缓存,消息数据包括消息内容和终端标识,终端标识与用户终端对应,用户终端与第一服务器连接。
数据访问模块404还用于在缓存中读取消息数据。
发送模块406,用于将读取到的消息数据发送至与终端标识对应的第一服务器,以使得第一服务器将消息内容发送至与终端标识对应的客户终端,并且返回对应的状态数据。
接收模块408,用于接收状态数据。
保存模块410,用于将消息数据和对应的状态数据映射至数据库进行保存。
在一个实施例中,消息数据和状态数据通过主键标识进行关联,保存模块410还用于查询数据库中是否存在状态数据对应的主键标识;若存在,则根据主键标识将状态数据在数据库中进行更新;否则,根据主键标识将消息数据和状态数据映射至数据库进行保存。
在一个实施例中,数据访问模块404还用于根据消息模板标识的优先级确定消息数据对应的优先级;根据优先级将消息数据分为多个队列;发送模块406还用于提取消息数据中的终端标识,采用多个线程对多个队列中的消息内容按照优先级发送至与终端标识对应的第一服务器。
在一个实施例中,获取模块402还用于对终端标识进行计数,判断终端标识在第一预设时间内的累计数量是否大于第一预设数量;若是,则根据终端标识拉取第一预设数量的消息数据,并且拒绝拉取终端标识对应的超出第一预设数量的消息数据。
在一个实施例中,发送模块406还用于若在第二预设时间内超出第二预设数量的消息数据未被发送,则生成告警信息,并将告警信息发送至运营终端,运营终端用于远程处理异常状况,告警信息中包括异常网关;接收模块还用于接收运营终端发送的网关切换指令;如图5所示,该装置还包括:切换模块412,用于根据网关切换指令关闭异常网关,切换至其他网关来处理未被发送的消息数据。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种消息异步处理方法,所述方法包括:
通过后台服务器调用EJB数据接口或HTTP数据接口同步从多个第二服务器拉取消息数据;包括:采用key-value的形式对所述消息数据中的终端标识进行计数,判断所述终端标识在第一预设时间内的累计数量是否大于第一预设数量;若是,则根据所述终端标识拉取第一预设数量的消息数据,并且拒绝拉取所述终端标识对应的超出第一预设数量的消息数据;不同业务类型的消息对应于不同的第一预设时间和第一预设数量;所述第二服务器为各个机构所采用的部署有数据库的服务器;
通过所述后台服务器将所述消息数据写入缓存,所述消息数据包括消息内容和终端标识,所述终端标识与用户终端对应,所述用户终端与第一服务器连接;
通过所述后台服务器在缓存中读取消息数据,将读取到的消息数据发送至与终端标识对应的第一服务器,以使得所述第一服务器将所述消息内容发送至与所述终端标识对应的客户终端,并且返回对应的状态数据;
通过所述后台服务器接收所述状态数据,将所述消息数据和对应的状态数据映射至数据库进行保存;
在所述将读取到的消息数据发送至与终端标识对应的第一服务器的步骤之前,还包括:根据消息模板标识的优先级确定消息数据对应的优先级;根据所述优先级将消息数据分为多个队列;不同队列对应不同的发送通道和不同的线程;所述将读取到的消息数据发送至与终端标识对应的第一服务器的步骤包括:
通过所述后台服务器提取所述消息数据中的终端标识,采用多个线程对多个队列中的消息内容,根据各所述消息数据对应消息模板的优先级,从优先级高到低的顺序将各所述消息数据发送至与终端标识对应的第一服务器;对于优先级相同的消息数据,通过所述后台服务器根据优先级相同的消息数据写入缓存的时间从前到后的顺序将优先级相同的消息数据发送至与终端标识对应的第一服务器。
2.根据权利要求1所述的方法,其特征在于,所述消息数据和状态数据通过主键标识进行关联,所述将所述消息数据和对应的状态数据映射至数据库进行保存的步骤包括:
查询数据库中是否存在状态数据对应的主键标识;
若存在,则根据所述主键标识将所述状态数据在数据库中进行更新;
否则,根据所述主键标识将所述消息数据和状态数据映射至数据库进行保存。
3.根据权利要求1所述的方法,其特征在于,所述终端标识为手机号码、应用程序账号或电子邮箱。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在第二预设时间内超出第二预设数量的消息数据未被发送,则生成告警信息,并将所述告警信息发送至运营终端,所述运营终端用于远程处理异常状况,所述告警信息中包括异常网关;
接收所述运营终端发送的网关切换指令,根据所述网关切换指令关闭所述异常网关,切换至其他网关来处理未被发送的消息数据。
5.根据权利要求4所述的方法,其特征在于,所述告警信息为短信、网络消息或电子邮件。
6.一种消息异步处理装置,其特征在于,所述装置包括:
获取模块,用于通过后台服务器调用EJB数据接口或HTTP数据接口同步从多个第二服务器拉取消息数据;包括:采用key-value的形式对所述消息数据中的终端标识进行计数,判断所述终端标识在第一预设时间内的累计数量是否大于第一预设数量;若是,则根据所述终端标识拉取第一预设数量的消息数据,并且拒绝拉取所述终端标识对应的超出第一预设数量的消息数据;不同业务类型的消息对应于不同的第一预设时间和第一预设数量;所述第二服务器为各个机构所采用的部署有数据库的服务器;
数据访问模块,用于通过所述后台服务器将所述消息数据写入缓存,所述消息数据包括消息内容和终端标识,所述终端标识与用户终端对应,所述用户终端与第一服务器连接;根据消息模板标识的优先级确定消息数据对应的优先级;根据所述优先级将消息数据分为多个队列;不同队列对应不同的发送通道和不同的线程;所述数据访问模块还用于通过所述后台服务器在缓存中读取消息数据;
发送模块,用于通过所述后台服务器将读取到的消息数据发送至与终端标识对应的第一服务器,以使得所述第一服务器将所述消息内容发送至与所述终端标识对应的客户终端,并且返回对应的状态数据;
接收模块,用于接收所述状态数据;
保存模块,用于将所述消息数据和对应的状态数据映射至数据库进行保存;
所述发送模块还用于通过所述后台服务器提取所述消息数据中的终端标识,采用多个线程对多个队列中的消息内容,根据各所述消息数据对应消息模板的优先级,从优先级高到低的顺序将各所述消息数据发送至与终端标识对应的第一服务器;对于优先级相同的消息数据,通过所述后台服务器根据优先级相同的消息数据写入缓存的时间从前到后的顺序将优先级相同的消息数据发送至与终端标识对应的第一服务器。
7.根据权利要求6所述的装置,其特征在于,所述消息数据和状态数据通过主键标识进行关联,所述保存模块还用于查询数据库中是否存在状态数据对应的主键标识;若存在,则根据所述主键标识将所述状态数据在数据库中进行更新;否则,根据所述主键标识将所述消息数据和状态数据映射至数据库进行保存。
8.根据权利要求6所述的装置,其特征在于,所述终端标识为手机号码、应用程序账号或电子邮箱。
9.根据权利要求6所述的装置,其特征在于,所述发送模块还用于若在第二预设时间内超出第二预设数量的消息数据未被发送,则生成告警信息,并将所述告警信息发送至运营终端,所述运营终端用于远程处理异常状况,所述告警信息中包括异常网关;所述接收模块还用于接收所述运营终端发送的网关切换指令;
所述装置还包括:
切换模块,用于根据所述网关切换指令关闭所述异常网关,切换至其他网关来处理未被发送的消息数据。
10.根据权利要求9所述的装置,其特征在于,所述告警信息为短信、网络消息或电子邮件。
11.一种计算机设备 ,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610835127.4A CN107786623B (zh) | 2016-09-20 | 2016-09-20 | 消息异步处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610835127.4A CN107786623B (zh) | 2016-09-20 | 2016-09-20 | 消息异步处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107786623A CN107786623A (zh) | 2018-03-09 |
CN107786623B true CN107786623B (zh) | 2021-03-30 |
Family
ID=61438181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610835127.4A Active CN107786623B (zh) | 2016-09-20 | 2016-09-20 | 消息异步处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107786623B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737292A (zh) * | 2018-04-18 | 2018-11-02 | 千寻位置网络有限公司 | 一种批量消息的发送方法及***、服务器 |
CN108900506A (zh) * | 2018-06-28 | 2018-11-27 | 江苏中威科技软件***有限公司 | 消息推送方法、推送服务器和传输控制协议服务器 |
CN109656725B (zh) * | 2018-11-09 | 2019-12-27 | 北京字节跳动网络技术有限公司 | 消息消费者切换方法、装置、存储介质及电子设备 |
CN109743377A (zh) * | 2018-12-27 | 2019-05-10 | 杭州当虹科技股份有限公司 | 一种基于http的小文件读写优化方法 |
CN110489484B (zh) * | 2019-07-11 | 2022-07-05 | 视联动力信息技术股份有限公司 | 数据同步方法、装置、可读存储介质及电子设备 |
CN113781133A (zh) * | 2020-06-22 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种订单数据处理方法和装置 |
CN113572680A (zh) * | 2021-07-30 | 2021-10-29 | 康键信息技术(深圳)有限公司 | 模板消息发送方法、装置、设备及存储介质 |
CN116032417B (zh) * | 2021-10-25 | 2024-04-19 | 青岛海尔科技有限公司 | 一种消息处理方法、终端和服务器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246696A (zh) * | 2013-03-21 | 2013-08-14 | 宁波公众信息产业有限公司 | 高并发数据库的访问方法及应用于多服务器***的方法 |
GB201312560D0 (en) * | 2013-07-12 | 2013-08-28 | Canon Kk | Methods and devices for exchanging data |
CN103428076A (zh) * | 2013-08-22 | 2013-12-04 | 北京奇虎科技有限公司 | 向多类型终端或应用发送信息的方法和装置 |
CN103905504A (zh) * | 2012-12-27 | 2014-07-02 | 海尔集团公司 | 一种信息推送方法及*** |
CN104702481A (zh) * | 2013-12-06 | 2015-06-10 | 腾讯科技(北京)有限公司 | 在网站媒体信息中实现即时通讯功能的***、方法和装置 |
CN104753769A (zh) * | 2015-03-24 | 2015-07-01 | 新余兴邦信息产业有限公司 | 用于消息队列下发消息的方法和消息下发装置 |
CN105207881A (zh) * | 2014-06-10 | 2015-12-30 | 阿里巴巴集团控股有限公司 | 一种消息发送方法和设备 |
CN105847853A (zh) * | 2016-04-01 | 2016-08-10 | 深圳市创云方网络科技有限公司 | 一种视频内容分发方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227311B (zh) * | 2008-02-03 | 2010-12-01 | 腾讯科技(深圳)有限公司 | 互联网信息发布***和发布方法 |
CN102567222A (zh) * | 2010-12-15 | 2012-07-11 | 北京兆易创新科技有限公司 | 一种数据的存取方法和装置 |
CN103188220B (zh) * | 2011-12-28 | 2016-07-06 | ***通信集团北京有限公司 | 消息发送***、方法及装置、数据维护方法及装置 |
CN105306383B (zh) * | 2014-06-10 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种消息的推送方法和终端以及推送服务器 |
-
2016
- 2016-09-20 CN CN201610835127.4A patent/CN107786623B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905504A (zh) * | 2012-12-27 | 2014-07-02 | 海尔集团公司 | 一种信息推送方法及*** |
CN103246696A (zh) * | 2013-03-21 | 2013-08-14 | 宁波公众信息产业有限公司 | 高并发数据库的访问方法及应用于多服务器***的方法 |
GB201312560D0 (en) * | 2013-07-12 | 2013-08-28 | Canon Kk | Methods and devices for exchanging data |
CN103428076A (zh) * | 2013-08-22 | 2013-12-04 | 北京奇虎科技有限公司 | 向多类型终端或应用发送信息的方法和装置 |
CN104702481A (zh) * | 2013-12-06 | 2015-06-10 | 腾讯科技(北京)有限公司 | 在网站媒体信息中实现即时通讯功能的***、方法和装置 |
CN105207881A (zh) * | 2014-06-10 | 2015-12-30 | 阿里巴巴集团控股有限公司 | 一种消息发送方法和设备 |
CN104753769A (zh) * | 2015-03-24 | 2015-07-01 | 新余兴邦信息产业有限公司 | 用于消息队列下发消息的方法和消息下发装置 |
CN105847853A (zh) * | 2016-04-01 | 2016-08-10 | 深圳市创云方网络科技有限公司 | 一种视频内容分发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107786623A (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107786623B (zh) | 消息异步处理方法和装置 | |
KR102238205B1 (ko) | 엔트리들을 위한 옵트-인 영속성을 갖는 메시지 스레드를 유지하는 장치 및 방법 | |
US8001150B2 (en) | Device management method using nodes having additional attribute and device management client thereof | |
US9462077B2 (en) | System, method, and circuit for servicing a client data service request | |
CN109002424B (zh) | 文件格式转换方法、装置、计算机设备及存储介质 | |
US8539509B2 (en) | Event queue managing device and event queue managing method | |
US20090089806A1 (en) | Method and system for dynamic context based contact service | |
TW201820903A (zh) | 即時聊天工具的聊天記錄處理方法及裝置 | |
CN109842621A (zh) | 一种减少token存储数量的方法及终端 | |
CN110610376A (zh) | 行为数据的响应方法、装置、计算机设备及存储介质 | |
CN114168297A (zh) | 一种归集任务调度方法、装置、设备及介质 | |
CN108763046A (zh) | 线程运行监控方法、装置、计算机设备和存储介质 | |
CN107948242A (zh) | 多服务号模板消息发送方法及*** | |
CN103092663A (zh) | 一种在终端中安装应用程序的方法及装置 | |
CN104065617B (zh) | 一种骚扰邮件处理方法、装置和*** | |
CN114402313A (zh) | 标签更新方法、装置、电子设备及存储介质 | |
CN112929482A (zh) | 传感器运行控制方法、装置、计算机设备和存储介质 | |
CN109766347B (zh) | 一种数据更新方法、装置、***、计算机设备及存储介质 | |
US8554753B1 (en) | Maintaining database transaction priority between web pages in the absence of direct communication between the pages | |
CN114546677A (zh) | 一种消息执行处理方法、装置、电子设备和存储介质 | |
CN109672605B (zh) | 邮件分发方法、装置、设备及可读存储介质 | |
CN111400060A (zh) | 设备联动方法、装置、服务器和介质 | |
CN115801569B (zh) | 一种访问规则部署方法、装置、设备、介质及云平台 | |
US20230014025A1 (en) | Method and device for processing service using request, and computer readable storage medium | |
CN110019259A (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 |