一种短信分发方法及系统与流程

文档序号:11139591阅读:972来源:国知局
一种短信分发方法及系统与制造工艺

本发明涉及计算机领域,特别是一种短信分发方法及系统。



背景技术:

随着移动终端的用户越来越多,企业或商家会使用将重要的信息推送到用户的手机中。目前的服务商家通常都会通过群发短信的方式,将相关的内容通过短信推送至用户的手机。而现有技术中的批发短信发送一般包括以下步骤:

1、客户调用短信平台接口,提交短信。

2、接口处理模块把短信包存入数据库中。

3、分检处理模块根据帐号配置,把短信数据包送到相应的通道发送队表。

4、通道发送程序从发送队列表取数据,发送到通道营运商。

然而,传统的方法需要访问数据库及文件,当大批量短信发送存在处理速度慢,分发效率低。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供了一种能快速进行短信分发方法及系统。

本发明具体通过以下的技术方案实现:一种短信分发方法,包括以下步骤:

S1:接收用户提交的短信包,并送到异步消息服务队列;

S2:从异步消息服务队列取短信包,根据通道配置参数,进行通道分包,分包完后送回异步消息服务队列;

S3:从异步消息服务队列中提取所属的短信包,进行发送;

S4:短信发送完后,生成入库数据包,送到异步消息服务队列;

S5:由入库服务进行入库保存。

作为本发明的进一步改进,所述异步消息服务队列的工作方式为socket服务,其在内存中申请key、list和set数据格式;其中,

所述key数据格式用于存储用户信息,进行认证;

所述list数据格式为一个先进先出的队列,用于提供数据插入和取出;所述队列list包括发送队列list、多个通多队列list和备用通道队列list;

所述set数据格式为一个集合,用于提供交集、并集操作。

作为本发明的进一步改进,所述步骤S1中,在接收用户提交的短信包时,包括以下步骤:

通过http接口接收用户提交的短信数据包,并将该用户信息放在key值中;

对用户进行认证,认证通过后送到异步消息服务队列中。

作为本发明的进一步改进,所述步骤2中,根据配置信息,将发送队列list数据分发至多个通道队列list中。

作为本发明的进一步改进,在所述步骤2中,还包括步骤:监控各个通道队列list,如果超过设定的分流阀值,触发分流到备用通道队列list。

作为本发明的进一步改进,所述步骤S2中,进行通道分包时,包括以下步骤:

S21:把黑名单、通道白名单、通道参数设置、号码段、地区、特别指定手机号加载到内存;

S22:过滤黑名单;

S23:如果特别指定手机号表有这个手机号,按特别指定手机号的通道走;

S24:如果设置通过地区选择通道功能,取手机号码前七位,定位对应地区;

S25:查找该地区是否指定特别通道;如果找到,则放到对应的通道队列中,并判断这个通道是否为白名单通道;若是,则判断该手机号码是否属于白名单,并将不是白名单的手机号过滤。

作为本发明的进一步改进,所述步骤S3中,具体包括以下步骤:

S31:从多个通道队列list中提取数据发送到移动、联通、电信短信行业网关;

S32:从多个通道队列list提取数据,发送到第三方通道。

作为本发明的进一步改进,所述步骤S1中,具体包括:

S11:由直连网关、第三方通道接收到上行数据,送到异步消息服务的上行队列;

S12:由上行服务从异步消息服务上行队列提取未处理上行信息,根据编码进行相应的触发。

本发明还提供了一种短信分发系统,其包括

接收模块,用于接收用户提交的短信包,并送到异步消息服务队列;

分包模块,用于从异步消息服务队列取短信包,根据通道配置参数,进行通道分包,分包完后送回异步消息服务队列;

发送模块,用于从异步消息服务队列中提取所属的短信包,进行发送;

生成模块,用于在短信发送完后,生成入库数据包,送到异步消息服务队列;

保存模块,用于对短信数据包进行入库保存。

作为本发明的进一步改进,所述异步消息服务队列的工作方式为socket服务,其在内存中申请key、list和set数据格式;其中,

所述key数据格式用于存储用户信息,进行认证;

所述list数据格式为一个先进先出的队列,用于提供数据插入和取出;所述队列list包括发送队列list、多个通多队列list和备用通道队列list;

所述set数据格式为一个集合,用于提供交集、并集操作。

作为本发明的进一步改进,所述接收模块包括:

用户信息存储子模块,用于通过http接口接收用户提交的短信数据包,并将该用户信息放在key值中;

认证子模块,用于对用户进行认证,认证通过后送到异步消息服务队列中。

作为本发明的进一步改进,所述分包模块包括分发子模块,用于根据配置信息,将发送队列list数据分发至多个通道队列list中。

作为本发明的进一步改进,所述分包模块还包括监控子模块,用于监控各个通道队列list,如果超过设定的分流阀值,触发分流到备用通道队列list。

作为本发明的进一步改进,所述分包模块还包括:

加载子模块,用于把黑名单、通道白名单、通道参数设置、号码段、地区、特别指定手机号加载到内存;

过滤子模块,用于过滤黑名单;

判断子模块,用于判断特别指定手机号表是否有对应的手机号,如果特别指定手机号表有这个手机号,则按特别指定手机号的通道走;

定位子模块,用于当设置通过地区选择通道功能时,取手机号码前七位,定位对应地区;

查找子模块,用于查找该地区是否指定特别通道;如果找到,则放到对应的通道队列中,并判断这个通道是否为白名单通道;若是,则判断该手机号码是否属于白名单,并将不是白名单的手机号过滤。

作为本发明的进一步改进,所述发送模块包括:

直通网关发送模块,用于从多个通道队列list中提取数据发送到移动、联通、电信短信行业网关;

第三方通道发送模块,用于从多个通道队列list提取数据,发送到第三方通道。

作为本发明的进一步改进,所述接收模块中还包括:

上行数据接收子模块,用于通过直连网关、第三方通道接收到上行数据,送到异步消息服务的上行队列;

触发子模块,用于由上行服务从异步消息服务上行队列提取未处理上行信息,根据编码进行相应的触发。

相比于现有技术,本发明具备以下的有益效果:

(1)短信分发的整个过程数据只在内存中交互,比传统访问文件或数据库的方式快,在以下操作中,有明显的优势。

(2)用户认证:传统方法访问数据库提取客户信息,涉及数据库查询操作,一般在秒级;新方法是把用户信息放在key值里,提取客户信息在毫秒级。

(3)白名单过滤:利用异步消息服务的交集功能,一次交互就可把白名单数据提取出来,避免传统大量访问数据库操作。

(4)多通道分发:根据配置,把发送队列表的数据分发到各通道队列,由于在异步消息服务队列操作,比在数据库迁移数据快。

(5)优先处理:采用不用通道队列list分隔开不同优先级的数据,与传统数据库通过排序方式处理方法相比,做到数据分开,互不干扰。

为了更好地理解和实施,下面结合附图详细说明本发明。

附图说明

图1是本发明的短信分发过程的逻辑架构示意图。

图2是本发明短信分发方法的步骤流程图。

图3是本发明的短信分发过程的数据流向的示意图。

图4是本发明的短信分发系统的模块连接框图。

图5是本发明的接收模块内部的模块框图。

图6是本发明的分包模块内部的模块框图。

图7是本发明的发送模块内部的模块框图。

具体实施方式

本发明为了解决现有技术中进行大批量短信发送时处理速度慢,分发效率低的问题,提供了一种处理效率高的短信分发方法及系统。具体通过以下的实施例进行介绍说明。

首先,先介绍本发明的短信分发方法及系统所应用到的基本逻辑架构。具体请参阅图1,其为本发明的短信分发过程的逻辑架构示意图。

本发明中是基于智能短信分发平台,该分发平台由接口、异步消息服务、分检服务、监控及分流、入库、上行、直连网关程序、第三方通道程序等服务组成。

所述接口为http接口,负责接收客户的短信数据包,认证后提交到异步消息服务队列。

所述异步消息服务,包括key值、发送队列list、各通道队列list消息服务。

所述分检服务,其用于根据配置信息,把发送队列list数据分发到多通道队列list。

所述监控及分流,其用于监控各通道队列list,如果超过设定的分流阀值,触发分流到备用通道队列list。

所述直连网关程序,其支持cmpp、sgip、smgp协议,用于从通道队列list提取数据发送到移动、联通、电信短信行业网关。

所述第三方通道程序,其支持第三方短信通道接口的程序,用于从通道队列list提取数据,发送到第三方通道。

所述入库服务,用于将通道发送完数据转存到数据库,便于查询及统计。

所述上行服务,用于处理通道上行信息,根据上行编码触发相应的功能。

基于上述的短信发送平台,本发明提供了一种短信分发方法。具体请参阅图2,其为本发明短信分发方法的步骤流程图。本发明提供了一种短信分发方法,包括以下步骤:

S1:接收用户提交的短信包,并送到异步消息服务队列。

具体的,所述异步消息服务队列的工作方式为socket服务,其在内存中申请key、list和set数据格式;其中,所述key数据格式用于存储用户信息,进行认证。例如:RC.Get("KHDM_"+KHDM)。

所述list数据格式为一个先进先出的队列,用于提供数据插入和取出;所述队列list包括发送队列list、多个通多队列list和备用通道队列list。例如:RC.LPush(ListId);RC.RPop(ListId)。

所述set数据格式为一个集合,用于提供交集、并集操作。

进一步,所述步骤S1中,在接收用户提交的短信包时,包括以下步骤:

通过http接口接收用户提交的短信数据包,并将该用户信息放在key值中;

对用户进行认证,认证通过后送到异步消息服务队列中。

进一步,在所述步骤S1中,还具体包括:

S11:由直连网关、第三方通道接收到上行数据,送到异步消息服务的上行队列。

S12:由上行服务从异步消息服务上行队列提取未处理上行信息,根据编码进行相应的触发。

S2:从异步消息服务队列取短信包,根据通道配置参数,进行通道分包,分包完后送回异步消息服务队列。

具体的,所述步骤S2中,根据配置信息,将发送队列list数据分发至多个通道队列list中。

进一步,在所述步骤S2中,还包括步骤:监控各个通道队列list,如果超过设定的分流阀值,触发分流到备用通道队列list。

而其中,当所述步骤S2中进行通道分包时,包括以下步骤:

S21:把黑名单、通道白名单、通道参数设置、号码段、地区、特别指定手机号加载到内存;

S22:过滤黑名单;

S23:如果特别指定手机号表有这个手机号,按特别指定手机号的通道走;

S24:如果设置通过地区选择通道功能,取手机号码前七位,定位对应地区;

S25:查找该地区是否指定特别通道;如果找到,则放到对应的通道队列中,并判断这个通道是否为白名单通道;若是,则判断该手机号码是否属于白名单,并将不是白名单的手机号过滤。

S3:从异步消息服务队列中提取所属的短信包,进行发送。

具体的,在所述步骤S3中,具体包括以下步骤:

S31:从多个通道队列list中提取数据发送到移动、联通、电信短信行业网关;

S32:从多个通道队列list提取数据,发送到第三方通道。

S4:短信发送完后,生成入库数据包,送到异步消息服务队列;

S5:由入库服务进行入库保存。

以下介绍本发明中短信数据的流向过程。具体请参阅图3,其为本发明的短信分发过程的数据流向的示意图。

首先,短信数据先由用户发送至异步信息服务队列,处于待分检短息队列中。

然后,进行分检。具体,可以根据实际设置,比如:黑名单、白名单,或者其他通道参数。

接着,根据不同的优先级,将上述短信数据分入不同的通道队列中。而其中,对该发送队列中进行监控,如果超过设定的分流阀值,触发分流到备用通道队列list。

最后,进行短信发送。当发送完成后,再将该短信进行存入数据库中。

以上,本发明中的短信数据先在内存中进行处理,当完成处理后,才存入数据库中。这样可以加快处理的速度。

请参阅图4,其为本发明的短信分发系统的连接框图。同时,本发明基于上述短信发送平台,本发明还提供了一种短信分发系统,其包括接收模块1、分包模块2、发送模块3、生成模块4和保存模块5。

所述接收模块1,用于接收用户提交的短信包,并送到异步消息服务队列。

所述分包模块2,用于从异步消息服务队列取短信包,根据通道配置参数,进行通道分包,分包完后送回异步消息服务队列;

所述发送模块3,用于从异步消息服务队列中提取所属的短信包,进行发送;

所述生成模块4,用于在短信发送完后,生成入库数据包,送到异步消息服务队列;

所述保存模块5,用于对短信数据包进行入库保存。

进一步,所述异步消息服务队列的工作方式为socket服务,其在内存中申请key、list和set数据格式;其中,

所述key数据格式用于存储用户信息,进行认证。

所述list数据格式为一个先进先出的队列,用于提供数据插入和取出;所述队列list包括发送队列list、多个通多队列list和备用通道队列list。

所述set数据格式为一个集合,用于提供交集、并集操作。

请参阅图5,其为本发明的接收模块内部的模块框图。进一步,所述接收模块1包括:用户信息存储子模块11、认证子模块12、上行数据接收子模块13和触发子模块14。

所述用户信息存储子模块11,用于通过http接口接收用户提交的短信数据包,并将该用户信息放在key值中。

所述认证子模块12,用于对用户进行认证,认证通过后送到异步消息服务队列中。

所述上行数据接收子模块13,用于通过直连网关、第三方通道接收到上行数据,送到异步消息服务的上行队列。

所述触发子模块14,用于由上行服务从异步消息服务上行队列提取未处理上行信息,根据编码进行相应的触发。

请同时参阅图6,其为本发明的分包模块内部的模块框图。进一步,所述分包模块2包括分发子模块21、监控子模块22、加载子模块23、过滤子模块24、判断子模块25、定位子模块26和查找子模块27。

所述分发子模块21,用于根据配置信息,将发送队列list数据分发至多个通道队列list中。

所述监控子模块22,用于监控各个通道队列list,如果超过设定的分流阀值,触发分流到备用通道队列list。

所述加载子模块23,用于把黑名单、通道白名单、通道参数设置、号码段、地区、特别指定手机号加载到内存。

所述过滤子模块24,用于过滤黑名单。

所述判断子模块25,用于判断特别指定手机号表是否有对应的手机号,如果特别指定手机号表有这个手机号,则按特别指定手机号的通道走。

所述定位子模块26,用于当设置通过地区选择通道功能时,取手机号码前七位,定位对应地区。

所述查找子模块27,用于查找该地区是否指定特别通道;如果找到,则放到对应的通道队列中,并判断这个通道是否为白名单通道;若是,则判断该手机号码是否属于白名单,并将不是白名单的手机号过滤。

请同时参阅图7,其为本发明的发送模块内部的模块框图。进一步,所述发送模块3包括:直通网关发送模块31和第三方通道发送模块32。

所述直通网关发送模块31,用于从多个通道队列list中提取数据发送到移动、联通、电信短信行业网关。

所述第三方通道发送模块32,用于从多个通道队列list提取数据,发送到第三方通道。

相比于现有技术,本发明具备以下的有益效果:

(1)短信分发的整个过程数据只在内存中交互,比传统访问文件或数据库的方式快,在以下操作中,有明显的优势。

(2)用户认证:传统方法访问数据库提取客户信息,涉及数据库查询操作,一般在秒级;新方法是把用户信息放在key值里,提取客户信息在毫秒级。

(3)白名单过滤:利用异步消息服务的交集功能,一次交互就可把白名单数据提取出来,避免传统大量访问数据库操作。

(4)多通道分发:根据配置,把发送队列表的数据分发到各通道队列,由于在异步消息服务队列操作,比在数据库迁移数据快。

(5)优先处理:采用不用通道队列list分隔开不同优先级的数据,与传统数据库通过排序方式处理方法相比,做到数据分开,互不干扰。

本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变形。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1