CN115297447B - 一种长短信合并方法、***、设备及存储介质 - Google Patents
一种长短信合并方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN115297447B CN115297447B CN202211186395.XA CN202211186395A CN115297447B CN 115297447 B CN115297447 B CN 115297447B CN 202211186395 A CN202211186395 A CN 202211186395A CN 115297447 B CN115297447 B CN 115297447B
- Authority
- CN
- China
- Prior art keywords
- short message
- long short
- segments
- long
- level cache
- 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
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
- H04W4/14—Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种长短信合并方法、***、设备及存储介质,包括接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段,短信消息业务处理接收方提取接收的长短信分段信息并存储于对应的短信消息业务处理接收方的一级缓存,判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段,不包括则将长短信的一级缓存分段存储于短信消息业务处理接收方对应的二级缓存中,判断短信消息业务处理接收方的二级缓存中是否包括长短信的所有分段,若包括则将二级缓存中长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信,能够支持多连接高并发场景下长短信分段的提交,提高了长短信分段的合并效率。
Description
技术领域
本发明涉及通信相关技术领域,尤其是涉及一种长短信合并方法、***、设备及存储介质。
背景技术
随着手机的普及,短信已经成为一种重要的通信媒介,被广泛应用于日常交流、商家推广促销信息和政府部门发布行政通知等。由于设计的原因,单条短消息的长度被限制在1120个字节即约70个汉字内,但对于一些短消息,如商家的促销消息,长度往往超过70个汉字,这种消息不得不被分拆成多条短消息发送。
目前应用最广泛的是 cmpp、sgip、smgp 的短信协议,在这些协议中长短信是其支持的一种消息类型,且长短信的协议都遵循 GSM 协议规范,依照 GSM 协议规范,Server(短信消息发起方)端可以接收来自 Client (短信消息发起方)端长短信请求,但目前长短信合并实现方案存在要求 Client 对相同长短信的不同分段必须提交到同一个 Server端的问题,并且即使支持分布式长短信合并但效率不高,不适用于目前分布式、高并发、多连接的环境。
发明内容
本发明旨在至少解决现有技术中存在的技术问题。为此,本发明提出一种长短信合并方法、***、设备及存储介质,能够支持多连接高并发场景下长短信分段的提交,提高了长短信分段的合并效率。
本发明的第一方面,提供了一种长短信合并方法,包括如下步骤:
接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段;
所述短信消息业务处理接收方提取接收的所述长短信分段的分段信息,得到信息提取后的长短信分段,其中,所述长短信分段的分段信息包括所述长短信的发送用户、所述长短信的phone、所述长短信的分组ID、所述长短信的分段数目、所述长短信分段在长短信中的位置以及所述长短信分段的内容;
将所述信息提取后的长短信分段存储于对应的所述短信消息业务处理接收方的一级缓存,得到所述长短信的一级缓存分段,其中,所述一级缓存为进程内缓存;
判断所述短信消息业务处理接收方的一级缓存中是否包括所述长短信的所有分段,若所述短信消息业务处理接收方的一级缓存中不包括所述长短信的所有分段,则将所述长短信的一级缓存分段存储于所述短信消息业务处理接收方对应的二级缓存中,得到所述长短信的二级缓存分段,其中,所述二级缓存为外部分布式缓存;
判断所述短信消息业务处理接收方的二级缓存中是否包括所述长短信的所有分段,若所述短信消息业务处理接收方的二级缓存中包括所述长短信的所有分段,则将所述二级缓存中所述长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信。
根据本发明的实施例,至少具有如下技术效果:
本方法通过接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段,短信消息业务处理接收方提取接收的长短信分段的分段信息,得到信息提取后的长短信分段,其中,长短信分段的分段信息包括长短信的发送用户、长短信的phone、长短信的分组ID、长短信的分段数目、长短信分段在长短信中的位置以及长短信分段的内容,将信息提取后的长短信分段存储于对应的短信消息业务处理接收方的一级缓存,得到长短信的一级缓存分段,其中,一级缓存为进程内缓存,判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的一级缓存中不包括长短信的所有分段,则将长短信的一级缓存分段存储于短信消息业务处理接收方对应的二级缓存中,得到长短信的二级缓存分段,在分布式环境中,可以实现在不同短信消息业务处理接收方对同一长短信做合并,能够支持多连接高并发场景下长短信分段的提交,其中,二级缓存为外部分布式缓存,判断短信消息业务处理接收方的二级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的二级缓存中包括长短信的所有分段,则将二级缓存中长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信,实现了乱序提交后在合并时恢复成正常次序,方便用户阅读,使得用户体验更好,同时提高了长短信分段的合并效率。
根据本发明的一些实施例,所述判断所述短信消息业务处理接收方的一级缓存中是否包括所述长短信的所有分段,包括:
根据所述长短信的发送用户、所述长短信的phone与所述长短信的分组ID组合得到所述长短信的唯一标识;
通过所述长短信的唯一标识获取短信消息业务处理接收方的一级缓存中所述长短信对应的一级缓存分段;
若所述长短信对应的一级缓存分段的数目等于所述长短信的分段数目,则所述短信消息业务处理接收方的所有一级缓存分段包括所述长短信的所有分段;
若所述长短信对应的一级缓存分段的数目小于所述长短信的分段数目,则所述短信消息业务处理接收方的所有一级缓存分段不包括所述长短信的所有分段。
根据本发明的一些实施例,所述将所述二级缓存中所述长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信,包括:
通过所述长短信的唯一标识获取短信消息业务处理接收方的二级缓存中所述长短信对应的二级缓存分段;
将所述长短信对应的二级缓存分段按长短信分段在长短信中的位置进行排序,得到排序后的二级缓存分段;
将所述排序后的二级缓存分段按顺序进行合并,得到合并后的长短信。
根据本发明的一些实施例,在所述判断所述短信消息业务处理接收方的一级缓存中是否包括所述长短信的所有分段之后,所述长短信合并方法还包括:若所述短信消息业务处理接收方的一级缓存中包括所述长短信的所有分段,则将所述一级缓存中所述长短信的所有一级缓存分段按顺序进行合并。
根据本发明的一些实施例,在判断所述短信消息业务处理接收方的二级缓存中是否包括所述长短信的所有分段之后,所述长短信合并方法还包括:若所述短信消息业务处理接收方的二级缓存中不包括所述长短信的所有分段,则不做处理。
本发明的第二方面,提供一种长短信合并***,应用于短信消息业务处理接收方,所述长短信合并***包括:
数据接收模块,用于接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段;
数据处理模块,用于所述短信消息业务处理接收方提取接收的所述长短信分段的分段信息,得到信息提取后的长短信分段,其中,所述长短信分段的分段信息包括所述长短信的发送用户、所述长短信的phone、所述长短信的分组ID、所述长短信的分段数目、所述长短信分段在长短信中的位置以及所述长短信分段的内容;
数据存储模块,用于将所述信息提取后的长短信分段存储于对应的所述短信消息业务处理接收方的一级缓存,得到所述长短信的一级缓存分段,其中,所述一级缓存为进程内缓存;
数据判断模块,用于判断所述短信消息业务处理接收方的一级缓存中是否包括所述长短信的所有分段,若所述短信消息业务处理接收方的一级缓存中不包括所述长短信的所有分段,则将所述长短信的一级缓存分段存储于所述短信消息业务处理接收方对应的二级缓存中,得到所述长短信的二级缓存分段,其中,所述二级缓存为外部分布式缓存;
数据合并模块,用于判断所述短信消息业务处理接收方的二级缓存中是否包括所述长短信的所有分段,若所述短信消息业务处理接收方的二级缓存中包括所述长短信的所有分段,则将所述二级缓存中所述长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信。
本***通过接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段,短信消息业务处理接收方提取接收的长短信分段的分段信息,得到信息提取后的长短信分段,其中,长短信分段的分段信息包括长短信的发送用户、长短信的phone、长短信的分组ID、长短信的分段数目、长短信分段在长短信中的位置以及长短信分段的内容,将信息提取后的长短信分段存储于对应的短信消息业务处理接收方的一级缓存,得到长短信的一级缓存分段,其中,一级缓存为进程内缓存,判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的一级缓存中不包括长短信的所有分段,则将长短信的一级缓存分段存储于短信消息业务处理接收方对应的二级缓存中,得到长短信的二级缓存分段,在分布式环境中,可以实现在不同短信消息业务处理接收方对同一长短信做合并,能够支持多连接高并发场景下长短信分段的提交,其中,二级缓存为外部分布式缓存,判断短信消息业务处理接收方的二级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的二级缓存中包括长短信的所有分段,则将二级缓存中长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信,实现了乱序提交后在合并时恢复成正常次序,方便用户阅读,使得用户体验更好,同时提高了长短信分段的合并效率。
根据本发明的一些实施例,所述长短信分段包括所述长短信的发送用户、所述长短信的phone、所述长短信的分组ID、所述长短信的分段数目、所述长短信分段在长短信中的位置以及所述长短信分段的内容,所述判断所述短信消息业务处理接收方的一级缓存中是否包括所述长短信的所有分段,包括:
根据所述长短信的发送用户、所述长短信的phone与所述长短信的分组ID组合得到所述长短信的唯一标识;
通过所述长短信的唯一标识获取短信消息业务处理接收方的一级缓存中所述长短信对应的一级缓存分段;
若所述长短信对应的一级缓存分段的数目等于所述长短信的分段数目,则所述短信消息业务处理接收方的所有一级缓存分段包括所述长短信的所有分段;
若所述长短信对应的一级缓存分段的数目小于所述长短信的分段数目,则所述短信消息业务处理接收方的所有一级缓存分段不包括所述长短信的所有分段。
根据本发明的一些实施例,所述数据合并模块还包括:
数据获取模块,用于通过所述长短信的唯一标识获取短信消息业务处理接收方的二级缓存中所述长短信对应的二级缓存分段;
数据排序模块,用于将所述长短信对应的二级缓存分段按长短信分段在长短信中的位置进行排序,得到排序后的二级缓存分段;
二级缓存分段合并模块,用于将所述排序后的二级缓存分段按顺序进行合并,得到合并后的长短信。
本发明的第三方面,提供了一种长短信合并电子设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行上述的长短信合并方法。
本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述的长短信合并方法。
需要注意的是,本发明的第二方面至第四方面与现有技术之间的有益效果与上述的一种长短信合并***与现有技术之间的有益效果相同,此处不再细述。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例的一种长短信合并方法的流程图;
图2是本发明一实施例的一种长短信合并方法的应用信息图;
图3是本发明一实施例的一种长短信合并方法的一个合并信息图;
图4是本发明一实施例的一种长短信合并方法的同一个Client端使用同一个Account连接到不同的Server端提交短信分段时的应用流程图;
图5是本发明一实施例的一种长短信合并方法的不同的Client端使用同一个Account分别连接到不同的Server端提交短信分段时的应用流程图;
图6是本发明一实施例的一种长短信合并方法的同一个Client端使用同一个Account连接到相同的Server端提交短信分段时的应用流程图;
图7是本发明一实施例的一种长短信合并方法的不同的Client端使用同一个Account分别连接同一个Server端提交短信分段时的应用流程图;
图8是本发明一实施例的一种长短信合并方法的整体流程图;
图9是本发明一实施例的一种长短信合并***的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,如果有描述到第一、第二等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
本发明的描述中,需要说明的是,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
目前应用最广泛的是 cmpp、sgip、smgp 的短信协议,在这些协议中长短信是其支持的一种消息类型,且长短信的协议都遵循 GSM 协议规范,依照 GSM 协议规范,Server(短信消息发起方)端可以接收来自 Client (短信消息发起方)端长短信请求,但目前长短信合并实现方案存在要求 Client 对相同长短信的不同分段必须提交到同一个 Server端的问题,并且即使支持分布式长短信合并但效率不高,不适用于目前分布式、高并发、多连接的环境。
为了解决上述技术缺陷,参照图1,本发明还提供了一种长短信合并方法,包括:
步骤S101、接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段;
步骤S102、短信消息业务处理接收方提取接收的长短信分段的分段信息,得到信息提取后的长短信分段,其中,长短信分段的分段信息包括长短信的发送用户、长短信的phone、长短信的分组ID、长短信的分段数目、长短信分段在长短信中的位置以及长短信分段的内容;
步骤S103、将信息提取后的长短信分段存储于对应的短信消息业务处理接收方的一级缓存,得到长短信的一级缓存分段,其中,一级缓存为进程内缓存;
步骤S104、判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的一级缓存中不包括长短信的所有分段,则将长短信的一级缓存分段存储于短信消息业务处理接收方对应的二级缓存中,得到长短信的二级缓存分段,其中,二级缓存为外部分布式缓存;
步骤S105、判断短信消息业务处理接收方的二级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的二级缓存中包括长短信的所有分段,则将二级缓存中长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信。
本方法通过接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段,短信消息业务处理接收方提取接收的长短信分段的分段信息,得到信息提取后的长短信分段,其中,长短信分段的分段信息包括长短信的发送用户、长短信的phone、长短信的分组ID、长短信的分段数目、长短信分段在长短信中的位置以及长短信分段的内容,将信息提取后的长短信分段存储于对应的短信消息业务处理接收方的一级缓存,得到长短信的一级缓存分段,其中,一级缓存为进程内缓存,判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的一级缓存中不包括长短信的所有分段,则将长短信的一级缓存分段存储于短信消息业务处理接收方对应的二级缓存中,得到长短信的二级缓存分段,在分布式环境中,可以实现在不同短信消息业务处理接收方对同一长短信做合并,能够支持多连接高并发场景下长短信分段的提交,其中,二级缓存为外部分布式缓存,判断短信消息业务处理接收方的二级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的二级缓存中包括长短信的所有分段,则将二级缓存中长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信,实现了乱序提交后在合并时恢复成正常次序,方便用户阅读,使得用户体验更好,同时提高了长短信分段的合并效率。
在一些实施例中,步骤S104可以包括但不限于包括步骤S201至步骤S204:
步骤S201、根据长短信的发送用户、长短信的phone与长短信的分组ID组合得到长短信的唯一标识;
步骤S202、通过长短信的唯一标识获取短信消息业务处理接收方的一级缓存中长短信对应的一级缓存分段;
步骤S203、若长短信对应的一级缓存分段的数目等于长短信的分段数目,则短信消息业务处理接收方的所有一级缓存分段包括长短信的所有分段;
步骤S204、若长短信对应的一级缓存分段的数目小于长短信的分段数目,则短信消息业务处理接收方的所有一级缓存分段不包括长短信的所有分段。
具体的,参照图2,Account为长短信的发送用户,phone为长短信的phone,TP_pid为长短信的分组ID,PkTotal为长短信的分段数目,PkNumber为长短信分段在长短信中的位置,content为长短信分段的内容,Account + phone + TP_pid三个字段并且在字段之间使用下划线分隔从而组合成一个key,参照图2,对于长短信A和B,可以组合成 user1_13800138000_1 和user2_13800138000_2 两个key值,key值为对应长短信的唯一标识,也是短信消息业务处理接收方接收到该长短信的不同分段时,对这些短信分段进行分组的依据。
在一些实施例中,步骤S105可以包括但不限于包括步骤S301至步骤S303:
步骤S301、通过长短信的唯一标识获取短信消息业务处理接收方的二级缓存中长短信对应的二级缓存分段;
步骤S302、将长短信对应的二级缓存分段按长短信分段在长短信中的位置进行排序,得到排序后的二级缓存分段;
步骤S303、将排序后的二级缓存分段按顺序进行合并,得到合并后的长短信。
具体的,参照图3,当同一长短信的所有分段到齐后,需要执行合并的动作,无论是在一级缓存中到齐还是在二级缓存中到齐,由于短信消息发起方提交短信分段时的不可控性,达到短信消息业务处理接收方时,分段的顺序并不是一定按照PkNumber = 0、PkNumber= 1、PkNumber = 2的顺序收到,有可能会乱序,所以在执行合并的时候需要对同一长短信的所有分段进行排序,以保证数据的准确性,排序规则按照PkNumber的顺序从小到大依次排列,然后分别取出content做拼接。
具体的,参照图4,Client端短信消息发起方,Server端为短信消息业务处理接收方,以长短信分两段为例,同一个Client端使用同一个Account连接到不同的Server端提交短信分段时,则会出现以下流程,此时无论是Server-1还是Server-2的一级缓存都是无法收集齐所有短信分段的,所以借助二级缓存,Server-1和 Server-2都把短信分段1和短信分段2都存到二级缓存中,二级缓存中收集齐了两段数据,由于短信分段提交的顺序并不强制要求,可以先提交短信分段1,也可以先提交短信分段2,合并的动作交由收到最后一个分段的Server来执行。
具体的,参照图5,以长短信分两段为例,不同的Client端使用同一个Account分别连接到不同的Server端提交短信分段时,此时,Client 端可以使用多个进程提交,对于Client 端而言,短信分段的提交性能是最高的,短信分段的收集与合并流程与图4一样。
在一些实施例中,在判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段之后,长短信合并方法还包括:若短信消息业务处理接收方的一级缓存中包括长短信的所有分段,则将一级缓存中长短信的所有一级缓存分段按顺序进行合并。
具体的,参照图6,以长短信分两段为例,同一个Client端使用同一个Account连接到相同的Server端提交短信分段时,此时,所有分段都会经过同一个Server,所有分段都可以在一级缓存中收集齐,所以无需使用二级缓存来收集齐,短信分段的合并效率也高。
具体的,参照图7,以长短信分两段为例,不同的Client端使用同一个Account分别连接同一个Server端提交短信分段时,此时,所有分段都会经过同一个Server,所有分段都可以在一级缓存中收集齐,所以无需使用二级缓存来收集齐,短信分段的合并效率也高。
在一些实施例中,在判断短信消息业务处理接收方的二级缓存中是否包括长短信的所有分段之后,长短信合并方法还包括:若短信消息业务处理接收方的二级缓存中不包括长短信的所有分段,则不做处理。
参照图8,为方便本领域人员理解,以下提供一组最佳实施例:
Client端把同一长短信的不同分段提交到同一个Server端时,Server端接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段;
短信消息业务处理接收方提取接收的长短信分段的分段信息,得到信息提取后的长短信分段,其中,长短信分段的分段信息包括长短信的发送用户、长短信的phone、长短信的分组ID、长短信的分段数目、长短信分段在长短信中的位置以及长短信分段的内容;
将信息提取后的长短信分段存储于对应的短信消息业务处理接收方的一级缓存,得到长短信的一级缓存分段,其中,一级缓存为进程内缓存;
判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的一级缓存中包括长短信的所有分段,则将一级缓存中长短信的所有一级缓存分段按顺序进行合并;若短信消息业务处理接收方的一级缓存中不包括长短信的所有分段,则将长短信的一级缓存分段存储于短信消息业务处理接收方对应的二级缓存中,得到长短信的二级缓存分段,其中,二级缓存为外部分布式缓存;
判断短信消息业务处理接收方的二级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的二级缓存中包括长短信的所有分段,则将二级缓存中长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信,若短信消息业务处理接收方的二级缓存中不包括长短信的所有分段,则不做处理。
另外,参照图9,本发明的一个实施例,提供一种长短信合并***,应用于短信消息业务处理接收方,包括数据接收模块1100、数据处理模块1200、数据存储模块1300、数据判断模块1400以及数据合并模块1500,其中:
数据接收模块1100用于接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段;
数据处理模块1200用于短信消息业务处理接收方提取接收的长短信分段的分段信息,得到信息提取后的长短信分段,其中,长短信分段的分段信息包括长短信的发送用户、长短信的phone、长短信的分组ID、长短信的分段数目、长短信分段在长短信中的位置以及长短信分段的内容;
数据存储模块1300用于将信息提取后的长短信分段存储于对应的短信消息业务处理接收方的一级缓存,得到长短信的一级缓存分段,其中,一级缓存为进程内缓存;
数据判断模块1400用于判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的一级缓存中不包括长短信的所有分段,则将长短信的一级缓存分段存储于短信消息业务处理接收方对应的二级缓存中,得到长短信的二级缓存分段,其中,二级缓存为外部分布式缓存;
数据合并模块1500用于判断短信消息业务处理接收方的二级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的二级缓存中包括长短信的所有分段,则将二级缓存中长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信。
本***通过接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段,短信消息业务处理接收方提取接收的长短信分段的分段信息,得到信息提取后的长短信分段,其中,长短信分段的分段信息包括长短信的发送用户、长短信的phone、长短信的分组ID、长短信的分段数目、长短信分段在长短信中的位置以及长短信分段的内容,将信息提取后的长短信分段存储于对应的短信消息业务处理接收方的一级缓存,得到长短信的一级缓存分段,其中,一级缓存为进程内缓存,判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的一级缓存中不包括长短信的所有分段,则将长短信的一级缓存分段存储于短信消息业务处理接收方对应的二级缓存中,得到长短信的二级缓存分段,在分布式环境中,可以实现在不同短信消息业务处理接收方对同一长短信做合并,能够支持多连接高并发场景下长短信分段的提交,其中,二级缓存为外部分布式缓存,判断短信消息业务处理接收方的二级缓存中是否包括长短信的所有分段,若短信消息业务处理接收方的二级缓存中包括长短信的所有分段,则将二级缓存中长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信,实现了乱序提交后在合并时恢复成正常次序,方便用户阅读,使得用户体验更好,同时提高了长短信分段的合并效率。
在一些实施例中,长短信分段包括长短信的发送用户、长短信的phone、长短信的分组ID、长短信的分段数目、长短信分段在长短信中的位置以及长短信分段的内容,判断短信消息业务处理接收方的一级缓存中是否包括长短信的所有分段,包括:
根据长短信的发送用户、长短信的phone与长短信的分组ID组合得到长短信的唯一标识;
通过长短信的唯一标识获取短信消息业务处理接收方的一级缓存中长短信对应的一级缓存分段;
若长短信对应的一级缓存分段的数目等于长短信的分段数目,则短信消息业务处理接收方的所有一级缓存分段包括长短信的所有分段;
若长短信对应的一级缓存分段的数目小于长短信的分段数目,则短信消息业务处理接收方的所有一级缓存分段不包括长短信的所有分段。
在一些实施例中,数据合并模块还包括:
数据获取模块,用于通过长短信的唯一标识获取短信消息业务处理接收方的二级缓存中长短信对应的二级缓存分段;
数据排序模块,用于将长短信对应的二级缓存分段按长短信分段在长短信中的位置进行排序,得到排序后的二级缓存分段;
二级缓存分段合并模块,用于将排序后的二级缓存分段按顺序进行合并,得到合并后的长短信。
需要注意的是,本***实施例与上述的***实施例是基于相同的发明构思,因此上述方法实施例的相关内容同样适用于本***实施例,这里不再赘述。
本申请还提供一种长短信合并电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现:如上述的长短信合并方法。
处理器和存储器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述实施例的长短信合并方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的长短信合并方法,例如,执行以上描述的图1中的方法步骤S101至步骤S105。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行:如上述的长短信合并方法。
该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述电子设备实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的长短信合并方法,例如,执行以上描述的图1中的方法步骤S101至步骤S105。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序单元或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序单元或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
上面结合附图对本发明实施例作了详细说明,但本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (8)
1.一种长短信合并方法,其特征在于,应用于短信消息业务处理接收方,所述长短信合并方法包括:
接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段;
所述短信消息业务处理接收方提取接收的长短信分段的分段信息,得到信息提取后的长短信分段,其中,所述长短信分段的分段信息包括所述长短信的发送用户、所述长短信的phone、所述长短信的分组ID、所述长短信的分段数目、所述长短信分段在长短信中的位置以及所述长短信分段的内容,所述长短信的phone为所述长短信的电话号码;
将所述信息提取后的长短信分段存储于对应的所述短信消息业务处理接收方的一级缓存,得到所述长短信的一级缓存分段,其中,所述一级缓存为进程内缓存;
判断所述短信消息业务处理接收方的一级缓存中是否包括所述长短信的所有分段,具体为:
根据所述长短信的发送用户、所述长短信的phone与所述长短信的分组ID组合得到所述长短信的唯一标识;
通过所述长短信的唯一标识获取短信消息业务处理接收方的一级缓存中所述长短信对应的一级缓存分段;
若所述长短信对应的一级缓存分段的数目等于所述长短信的分段数目,则所述短信消息业务处理接收方的所有一级缓存分段包括所述长短信的所有分段;
若所述长短信对应的一级缓存分段的数目小于所述长短信的分段数目,则所述短信消息业务处理接收方的所有一级缓存分段不包括所述长短信的所有分段;
若所述短信消息业务处理接收方的一级缓存中不包括所述长短信的所有分段,则将所述长短信的一级缓存分段存储于所述短信消息业务处理接收方对应的二级缓存中,得到所述长短信的二级缓存分段,其中,所述二级缓存为外部分布式缓存;
判断所述短信消息业务处理接收方的二级缓存中是否包括所述长短信的所有分段,若所述短信消息业务处理接收方的二级缓存中包括所述长短信的所有分段,则将所述二级缓存中所述长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信。
2.根据权利要求1所述的一种长短信合并方法,其特征在于,所述将所述二级缓存中所述长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信,包括:
通过所述长短信的唯一标识获取短信消息业务处理接收方的二级缓存中所述长短信对应的二级缓存分段;
将所述长短信对应的二级缓存分段按长短信分段在长短信中的位置进行排序,得到排序后的二级缓存分段;
将所述排序后的二级缓存分段按顺序进行合并,得到合并后的长短信。
3.根据权利要求2所述的一种长短信合并方法,其特征在于,在所述判断所述短信消息业务处理接收方的一级缓存中是否包括所述长短信的所有分段之后,所述长短信合并方法还包括:若所述短信消息业务处理接收方的一级缓存中包括所述长短信的所有分段,则将所述一级缓存中所述长短信的所有一级缓存分段按顺序进行合并。
4.根据权利要求3所述的一种长短信合并方法,其特征在于,在判断所述短信消息业务处理接收方的二级缓存中是否包括所述长短信的所有分段之后,所述长短信合并方法还包括:若所述短信消息业务处理接收方的二级缓存中不包括所述长短信的所有分段,则不做处理。
5.一种长短信合并***,其特征在于,应用于短信消息业务处理接收方,所述长短信合并***包括:
数据接收模块,用于接收来自短信消息发起方使用同一个账号发送的同一长短信的不同分段;
数据处理模块,用于所述短信消息业务处理接收方提取接收的长短信分段的分段信息,得到信息提取后的长短信分段,其中,所述长短信分段的分段信息包括所述长短信的发送用户、所述长短信的phone、所述长短信的分组ID、所述长短信的分段数目、所述长短信分段在长短信中的位置以及所述长短信分段的内容,所述长短信的phone为所述长短信的电话号码;
数据存储模块,用于将所述信息提取后的长短信分段存储于对应的所述短信消息业务处理接收方的一级缓存,得到所述长短信的一级缓存分段,其中,所述一级缓存为进程内缓存;
数据判断模块,用于判断所述短信消息业务处理接收方的一级缓存中是否包括所述长短信的所有分段,具体为:
根据所述长短信的发送用户、所述长短信的phone与所述长短信的分组ID组合得到所述长短信的唯一标识;
通过所述长短信的唯一标识获取短信消息业务处理接收方的一级缓存中所述长短信对应的一级缓存分段;
若所述长短信对应的一级缓存分段的数目等于所述长短信的分段数目,则所述短信消息业务处理接收方的所有一级缓存分段包括所述长短信的所有分段;
若所述长短信对应的一级缓存分段的数目小于所述长短信的分段数目,则所述短信消息业务处理接收方的所有一级缓存分段不包括所述长短信的所有分段;
若所述短信消息业务处理接收方的一级缓存中不包括所述长短信的所有分段,则将所述长短信的一级缓存分段存储于所述短信消息业务处理接收方对应的二级缓存中,得到所述长短信的二级缓存分段,其中,所述二级缓存为外部分布式缓存;
数据合并模块,用于判断所述短信消息业务处理接收方的二级缓存中是否包括所述长短信的所有分段,若所述短信消息业务处理接收方的二级缓存中包括所述长短信的所有分段,则将所述二级缓存中所述长短信的所有二级缓存分段按顺序进行合并,得到合并后的长短信。
6.根据权利要求5所述的一种长短信合并***,其特征在于,所述数据合并模块还包括:
数据获取模块,用于通过所述长短信的唯一标识获取短信消息业务处理接收方的二级缓存中所述长短信对应的二级缓存分段;
数据排序模块,用于将所述长短信对应的二级缓存分段按长短信分段在长短信中的位置进行排序,得到排序后的二级缓存分段;
二级缓存分段合并模块,用于将所述排序后的二级缓存分段按顺序进行合并,得到合并后的长短信。
7.一种长短信合并设备,其特征在于,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如权利要求1至4任一项所述的长短信合并方法。
8.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至4任一项所述的长短信合并方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186395.XA CN115297447B (zh) | 2022-09-28 | 2022-09-28 | 一种长短信合并方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186395.XA CN115297447B (zh) | 2022-09-28 | 2022-09-28 | 一种长短信合并方法、***、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115297447A CN115297447A (zh) | 2022-11-04 |
CN115297447B true CN115297447B (zh) | 2023-02-28 |
Family
ID=83833816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211186395.XA Active CN115297447B (zh) | 2022-09-28 | 2022-09-28 | 一种长短信合并方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115297447B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116261109B (zh) * | 2023-05-16 | 2023-08-01 | 北京久佳信通科技有限公司 | 一种长短信拼接方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662539A (zh) * | 2009-09-28 | 2010-03-03 | 深圳华为通信技术有限公司 | 长短信组装方法及装置 |
CN101820596A (zh) * | 2010-01-22 | 2010-09-01 | 青岛海信移动通信技术股份有限公司 | 超长短信处理方法及移动通信终端 |
CN101931919A (zh) * | 2010-08-18 | 2010-12-29 | 中国电信股份有限公司 | 长短信发送处理方法与装置、业务网关及通信*** |
CN106936977A (zh) * | 2015-12-30 | 2017-07-07 | 深圳富泰宏精密工业有限公司 | 超长短信处理方法及其移动终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4988766B2 (ja) * | 2006-12-22 | 2012-08-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メッセージ・ハブ装置、プログラム、および方法 |
CN106850936B (zh) * | 2015-12-07 | 2019-10-01 | 卓望数码技术(深圳)有限公司 | 一种网络信息与手机短信结合展示的方法及装置 |
-
2022
- 2022-09-28 CN CN202211186395.XA patent/CN115297447B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662539A (zh) * | 2009-09-28 | 2010-03-03 | 深圳华为通信技术有限公司 | 长短信组装方法及装置 |
CN101820596A (zh) * | 2010-01-22 | 2010-09-01 | 青岛海信移动通信技术股份有限公司 | 超长短信处理方法及移动通信终端 |
CN101931919A (zh) * | 2010-08-18 | 2010-12-29 | 中国电信股份有限公司 | 长短信发送处理方法与装置、业务网关及通信*** |
CN106936977A (zh) * | 2015-12-30 | 2017-07-07 | 深圳富泰宏精密工业有限公司 | 超长短信处理方法及其移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN115297447A (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810116B (zh) | 消息处理方法及相关产品 | |
CN103501486B (zh) | 一种消息推送方法及推送服务器 | |
CN106936791B (zh) | 拦截恶意网址访问的方法和装置 | |
CN110267314B (zh) | 切换网络切片的方法及装置 | |
CN102821109A (zh) | 在即时通信应用中实现数据共享的方法、相关设备及*** | |
CN115297447B (zh) | 一种长短信合并方法、***、设备及存储介质 | |
CN107911398B (zh) | 身份信息的认证方法、装置以及*** | |
CN110855548A (zh) | 一种消息推送方法及装置 | |
CN109379764B (zh) | 报文发送方法及装置 | |
CN105653945A (zh) | 一种基于黑名单的信息处理方法、装置及电子设备 | |
CN110659863B (zh) | 对象监听方法、装置、电子设备及计算机可读存储介质 | |
CN113992508A (zh) | 智能设备的局域网自动组网方法及智能设备 | |
WO2016037489A1 (zh) | Rcs垃圾消息的监控方法、装置及*** | |
CN108830724B (zh) | 一种资源数据包处理方法及终端设备 | |
US10506021B2 (en) | Method and device for providing communication connection for a plurality of candidate applications in a mobile device | |
CN114338794A (zh) | 一种服务消息的推送方法、装置、电子设备及存储介质 | |
CN101778055B (zh) | 一种消息处理方法和网络实体 | |
CN113162997B (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
CN115378855A (zh) | 一种数据包的测试方法、装置和通信装置及存储介质 | |
CN110493735B (zh) | 一种短信处理方法及装置 | |
CN109246686B (zh) | 基于云端技术的多卡用户通讯录更新方法及装置 | |
CN110661697B (zh) | 消息同步方法、装置、可读存储介质、电子设备及*** | |
CN114726763A (zh) | Dpi***的业务识别能力的检测方法及*** | |
CN107864127B (zh) | 一种应用程序的识别方法及装置 | |
CN111885097A (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 |