一种短信发送的方法技术

技术编号:20165047 阅读:30 留言:0更新日期:2019-01-19 00:18
本发明专利技术公开一种短信发送的方法,本发明专利技术通过创建短信发送表使得短信数据的流向从短信实时表到短信处理表,最后到短信历史表,摒弃了单一数据库表批量插入、遍历查询、数据变更的架构设计,改为短信数据水平切分式设计,避免了对数据库造成了相当大的数据查询、读取、操作压力,并且通过所述短信发送表可以连续追踪短信数据,能够清晰的追踪到所述短信数据所处的环节的短信状态,进一步极大程度上避免了性能瓶颈,提高了效率,满足当下移动互联网时代短信批量下发的需要;同时本发明专利技术适用单机部署、单机多线程部署和集群部署,为客户和合作伙伴提供多种选择。

【技术实现步骤摘要】
一种短信发送的方法
本专利技术涉及通信领域,尤其涉及一种短信领域。
技术介绍
随着移动互联网和移动智能终端的迅猛发展,短信息对人们的生活影响越来越大。人们通过短信息沟通交往、问候祝福,企业、商场通过短信营销传递,各类信息系统通过短信交互,作为一种信息渠道,短信息快捷方便、成本低,是当前使用最为广泛的交流手段。目前,大多数短信发送系统存在传输慢、到达延时、发送数量受限制、推送对象混乱、安全性不高等弊端,因此,搭建一套高性能高可靠的短信发送系统尤为重要。
技术实现思路
本专利技术实施例的目的在于提出一种短信发送的方法,旨在解决现有技术中在改善短信在传输发送过程中存在传输慢、到达延时、发送数量受限制、推送对象混乱、安全性不高的技术问题。本专利技术实施例是这样实现的,一种短信发送的方法,所述方法包括步骤:创建用于记录短信数据的短信发送表,所述短信发送表包括短信实时表、短信处理表和短信历史表;根据短信发送请求获取短信数据,并将所述短信数据插入到所述短信实时表,并将所述短信实时表中的短信状态写为0;根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,并按顺序派发所述短信数据到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1;所述短信数据经网关发送成功后,将发送成功的短信数据在所述短信处理表中的短信状态写为2;获取网关应答成功消息,并将应答成功的短信数据在所述短信处理表中的网关响应状态写为1,同时更新所述短信处理表中的该短信数据的网关响应时间为当前时间。优选的,在所述步骤“创建用于记录短信数据的短信发送表,所述短信发送表包括短信实时表、短信处理表和短信历史表”之前还包括步骤:初始化核心线程,并预置信号量和线程信号等级;所述步骤“根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,并按顺序派发所述短信数据到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1”具体为:根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,再根据当前信号量和当前线程信号等级,按顺序分配所述短信数据经核心线程派发到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1。优选的,在所述步骤“创建用于记录短信数据的短信发送表,所述短信发送表包括短信实时表、短信处理表和短信历史表”之前还包括步骤:初始化核心线程,并预置信号量、线程信号等级和服务器信号等级;所述步骤“根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,并按顺序派发所述短信数据到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1”具体为:根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,再根据各短信处理服务器的服务器信号等级按顺序将短信数据分配到对应的短信处理服务器,进一步根据当前信号量和当前线程信号等级,按顺序分配所述短信数据经核心线程派发到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1。优选的,所述短信实时表、短信处理表和短信历史表的字段信息相同,都包括主键ID、流水号、终端号码、短信类别、短信内容、短信发送时间、网关响应时间、短信状态、网关响应状态;所述主键ID为随机生成的32位字符串,根据短信发送请求的时间并进行排序的序号;所述流水号记录短信交易流水及其详细时间;所述终端号码为接收短信数据的手机号码;所述短信类别指根据业务场景将短信数据分为紧急、重要、普通三个类别,紧急类别为验证码类短信,重要类别为会议通知类短信,普通类别为公告类短信;所述短信内容指需要发送到终端号码的数据;所述短信状态包括四种状态,其中0表示待处理,1表示处理中,2表示发送成功,3表示发送失败;所述短信发送时间指短信数据派发到网关的时间;所述网关响应状态包括两种状态,其中1表示接收成功,2表示接收失败,通过所述网关响应状态可以获知所述短信数据是否接收成功;所述网关响应时间指接收到网关应答成功消息或者网关应答失败消息的时间。优选的,所述优先级系数指根据短信数据的短信类别分配的系数,其中,紧急类别的优先级系数为1.0,重要类别的优先级系数为0.8,普通类别的优先级系数为0.5;所述等待时长系数指根据短信数据的等待发送时间的长短分配的系数,其中短信数据到达后等待发送时长在0-3分钟时,其等待时长系数为0.5;短信数据到达后等待发送时长在3-5分钟时,其等待时长系数为0.8;短信数据到达后等待发送时长在5分钟以上时,其等待时长系数为1.0;短信数据派发到网关的顺序为:短信数据的优先级系数乘以其等待时长系数的积按照逆序排列派发到网关。优选的,单台短信处理服务器初始化M个核心线程,M=10-20;所述信号量指以单条短信数据作为信号单位计算出的当前未派发到网关的短信数据的数量,所述信号量为正整数,初始为0,每次有短信数据到达,所述信号量递增,当短信数据发送成功时,所述信号量递减;所述线程信号等级指在第一轮询周期内,根据单个核心线程所承载的信号量将对应的核心线程分为A级、B级和C级;在第一轮询周期内,当核心线程的信号量处于0-60之间时,对应的核心线程的线程信号等级为A级;当核心线程的信号量处于60-180之间时,对应的核心线程的线程信号等级为B级;当核心线程的信号量处于180以上,对应的核心线程的线程信号等级为C级;所述第一轮询周期为30s-60s。优选的,M为10,第一轮询周期为60s。优选的,当各核心线程的线程信号等级均处于B级时,自动创建N个临时线程,用于按顺序并发派发更多的短信数据到网关;其中,根据超出M个核心线程的短信数据总量n,按照n/180取整计算出需要创建的临时线程的数量,且n/180小于等于N。优选的,所述服务器信号等级是根据单个短信处理服务器所承载的信号量,在第二轮询周期内,当信号量处于0-20000之间时,对应的短信处理服务器的服务器信号等级为A级;当信号量处于20000-50000之间时,对应的短信处理服务器的服务器信号等级为B级;当信号量处于50000以上时,对应的短信处理服务器的服务器信号等级为C级;所述第二轮询周期为10-20分钟。优选的,所述第二轮询周期为15分钟。本专利技术的有益效果:本专利技术通过创建短信发送表使得短信数据的流向从短信实时表到短信处理表,最后到短信历史表,摒弃了单一数据库表批量插入、遍历查询、数据变更的架构设计,改为短信数据水平切分式设计,避免了对数据库造成了相当大的数据查询、读取、操作压力,并且通过所述短信发送表可以连续追踪短信数据,能够清晰的追踪到所述短信数据所处的环节的短信状态,进一步极大程度上避免了性能瓶颈,提高了效率,满足当下移动互联网时代短信批量下发的需要;同时本专利技术适用单机部署、单机多线程部署和集群部署,当短信业务量较小时,可以选择单应用部署,当短信业务规模较大(规模在日均100万条以上),或业务请求日益增长,单一系统性能已无法满足业务需要时,可通过增加负载均衡设备或软件,并增加相应硬件服务本文档来自技高网...

【技术保护点】
1.一种短信发送的方法,其特征在于,所述方法包括步骤:创建用于记录短信数据的短信发送表,所述短信发送表包括短信实时表、短信处理表和短信历史表;根据短信发送请求获取短信数据,并将所述短信数据插入到所述短信实时表,并将所述短信实时表中的短信状态写为0;根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,并按顺序派发所述短信数据到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1;所述短信数据经网关发送成功后,将发送成功的短信数据在所述短信处理表中的短信状态写为2;获取网关应答成功消息,并将应答成功的短信数据在所述短信处理表中的网关响应状态写为1,同时更新所述短信处理表中的该短信数据的网关响应时间为当前时间。

【技术特征摘要】
1.一种短信发送的方法,其特征在于,所述方法包括步骤:创建用于记录短信数据的短信发送表,所述短信发送表包括短信实时表、短信处理表和短信历史表;根据短信发送请求获取短信数据,并将所述短信数据插入到所述短信实时表,并将所述短信实时表中的短信状态写为0;根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,并按顺序派发所述短信数据到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1;所述短信数据经网关发送成功后,将发送成功的短信数据在所述短信处理表中的短信状态写为2;获取网关应答成功消息,并将应答成功的短信数据在所述短信处理表中的网关响应状态写为1,同时更新所述短信处理表中的该短信数据的网关响应时间为当前时间。2.如权利要求1所述的短信发送的方法,其特征在于,在所述步骤“创建用于记录短信数据的短信发送表,所述短信发送表包括短信实时表、短信处理表和短信历史表”之前还包括步骤:初始化核心线程,并预置信号量和线程信号等级;所述步骤“根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,并按顺序派发所述短信数据到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1”具体为:根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,再根据当前信号量和当前线程信号等级,按顺序分配所述短信数据经核心线程派发到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1。3.如权利要求1所述的短信发送的方法,其特征在于,在所述步骤“创建用于记录短信数据的短信发送表,所述短信发送表包括短信实时表、短信处理表和短信历史表”之前还包括步骤:初始化核心线程,并预置信号量、线程信号等级和服务器信号等级;所述步骤“根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,并按顺序派发所述短信数据到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1”具体为:根据短信数据的优先级系数和等待时长系数将所述短信数据进行排序,再根据各短信处理服务器的服务器信号等级按顺序将短信数据分配到对应的短信处理服务器,进一步根据当前信号量和当前线程信号等级,按顺序分配所述短信数据经核心线程派发到网关,将已派发的短信数据从所述短信实时表水平切入到所述短信处理表,并将所述短信数据在所述短信处理表中的短信状态写为1。4.如权利要求1-3其中任一种所述的短信发送的方法,其特征在于,所述短信实时表、短信处理表和短信历史表的字段信息相同,都包括主键ID、流水号、终端号码、短信类别、短信内容、短信发送时间、网关响应时间、短信状态、网关响应状态;所述主键ID为随机生成的32位字符串,根据短信发送请求的时间并进行排序的序号;所述流水号记录短信交易流水及其详细时间;所述终端号码为接收短信数据的手机号码;所述短信类...

【专利技术属性】
技术研发人员:刘磊李荣丁金龙朱小龙高鹏飞
申请(专利权)人:甘肃万维信息科技有限责任公司
类型:发明
国别省市:甘肃,62

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1