一种多通道可切换的短信发送方法与流程

文档序号:18740359发布日期:2019-09-21 01:42阅读:1251来源:国知局
一种多通道可切换的短信发送方法与流程

本发明涉及通讯领域,尤其涉及一种多通道可切换的短信发送方法。



背景技术:

当前发送短信主要依赖一家第三方短信服务商,如果遇到该第三方短信服务商对通道进行维护或者升级,就会造成一段时间短信无法发送。同时,现有的短信发送还会存在很多其他问题。例如:

1.当前提交短信到短信服务商,没有关注到达率和延迟时间等指标;

2.当前发送短信和短信服务商之间交互都是通过http请求,当短信服务商接口异常响应慢,会把整个系统拖垮。



技术实现要素:

为解决上述问题,本发明提出一种多通道可切换的短信发送方法。

一种多通道可切换的短信发送方法,包括以下步骤:

S1:对发送的短信配置至少两个所支持的通道,以及为各个通道配置权重;

S2:根据通道的权重,分配对应的通道发送短信;

S3:采集各个通道短信发送的成功率,重新生成各个通道的权重,并进入步骤S2。

优选的,所述对发送的短信配置至少两个所支持的通道,以及为各个通道配置权重包括:

为各个通道配置默认权重,所述默认权重按当前短信所有支持的通道配置均等的权重。

优选的,所述根据通道的权重,分配对应的通道发送短信包括:

S21:设定各通道为T1,…Ti,…TN,各通道对应的权重为Q1,…Qi,…QN;

S22:设定通道的总区间为[1,Q1+…+Qi+…+QN],设定通道Ti的区间为[Qi+1, Qi];

S23:在通道的总区间[1,Q1+…+Qi+…+QN]之间生成随机数,确定该随机数所在区间对应的通道,并将该通道作为发送短信的通道。

优选的,所述采集各个通道短信发送的成功率,重新生成各个通道的权重包括:

S31:获取单位时间内各个通道短信发送的成功率;

S32:设定不同的成功率对应的成功率系数;

S33:当通道被剔除时,设定剔除系数为0;当通道未被剔除时,设定剔除系数为1;

S34:计算得到各个通道的权重=成功率系数*剔除系数。

优选的,当在同一通道连续发送N条短信失败,则将该通道剔除;其中,N 为设定的阈值;

优选的,当一短信在发送过程中遇到所在的通道发生熔断,则将该通道剔除。

优选的,

当通道触发剔除,则暂停通道若干时间;

若干时间后,选取该通道发送一条短信,如果发送失败,则继续暂停若干时间后继续发送,重复该过程直到发送成功;

重新加入该通道。

本发明具备以下有益效果:通过配置至少两个通道用于短信的发送,提高短信发送的效率,且提高通道故障的容错率;通过对通道权重的分配,实现资源的合理利用;再通过通道剔除和加入的方法,实现对通道更好的监控。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明一实施例一种多通道可切换的短信发送方法的流程示意图;

图2是本发明一实施例一种多通道可切换的短信发送方法中步骤S2的流程示意图;

图3是本发明一实施例一种多通道可切换的短信发送方法中步骤S3的流程示意图。

具体实施方式

以下结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

本发明的基本思想是通过配置至少两个通道用于短信的发送,同时通过对通道权重的分配,实现资源的合理利用,再通过通道剔除和加入的方法,实现对通道更好的监控。

基于以上构思及技术,本发明实施例提出一种多通道可切换的短信发送方法,如图1所示,包括以下步骤:

S1:对发送的短信配置至少两个所支持的通道,以及为各个通道配置权重;

S2:根据通道的权重,分配对应的通道发送短信;

S3:采集各个通道短信发送的成功率,重新生成各个通道的权重,并进入步骤S2。

在本实施例中,通过对发送的短信配置至少两个所支持的通道,如果遇到该第三方短信服务商对一通道进行维护或者升级的情况,其他的通道依然可以使用,而避免了因此而无法提供发送短信的服务。

除此之外,在本实施例中还为各个通道配置权重。在初始建立通道时,各个通道配置默认权重,所述默认权重按当前短信所有支持的通道配置均等的权重。例如当前有4个通道,默认的权重比例就是1:1:1:1。

如图2所示,根据通道的权重,分配对应的通道发送短信的方法为:

S21:设定各通道为T1,…Ti,…TN,各通道对应的权重为Q1,…Qi,…QN;

S22:设定通道的总区间为[1,Q1+…+Qi+…+QN],设定通道Ti的区间为[Qi+1, Qi];

S23:在通道的总区间[1,Q1+…+Qi+…+QN]之间生成随机数,确定该随机数所在区间对应的通道,并将该通道作为发送短信的通道。

在一实施例中,各通道权重的比值:通道T1:通道T2:通道T3:通道T4=100:20:0:2,算出通道的总权重为122。再为各个通道分配区间,通道T1的区间为[1,100],通道T2的区间为[101,120],通道T3的区间为0,通道T4的区间为[121,122],然后在区间[1,122]之间生成随机数,该随机数落在哪个区间,则对应选择哪个通道。

由于在短信发送的过程中,会受到通信信号等环境因素或者服务器原因的影响,导致各个通道的短信的发送成功率不同。因此,在本实施例中,根据短信的发送成功率对各个通道的权重进行重新配置,使得各通道的资源配置更加合理,同时资源的利用率更高。

具体的,如图3所示,采集各个通道短信发送的成功率,重新生成各个通道的权重的方法为:

S31:获取单位时间内各个通道短信发送的成功率;

S32:设定不同的成功率对应的成功率系数;

S33:当通道被剔除时,设定剔除系数为0;当通道未被剔除时,设定剔除系数为1;

S34:计算得到各个通道的权重=成功率系数*剔除系数。

在一实施例中,当成功率大于90%,则成功率系数为100;当成功率为80%-90%,则成功率系数为20;当成功率为50%-80%,则成功率系数为5;当成功率为20%-50%,则成功率系数为3;当成功率为0%-20%,则成功率系数为2。

在实际对通道T1、T2、T3、T4计算成功率后得到通道T1成功率为95%,通道T2成功率为85%,通道T3的成功率为0,通道T4的成功率为5%,那最后生成的权重比例就是100:20:0:2。

在短信发送的过程中,每隔设定时间对各通道的权重进行重新配置,能够进一步的符合实际的使用需求。

在短信发送的过程中,某些通道可能会由于极端情况导致无法通过该通道发送短信,在这种情况下需要对该通道进行剔除,在该通道恢复正常时重新加入。保证该通道在无法使用的过程中,不再对该通道配置短信。

在本实施例中,对通道进行剔除的条件有两种,当满足至少其中一项时,则对该通道进行剔除。

第一种,当在同一通道连续发送N条短信失败,则将该通道剔除;其中,N 为设定的阈值。阈值N根据实际需求进行设定,一般设为20。当在同一通道连续发送N条短信失败,则说明该通道目前无法使用,则将该通道剔除。

第二种,当一短信在发送过程中遇到所在的通道发生熔断,则将该通道剔除。其中,熔断的发生机制为:当依赖接口出现响应慢或者僵尸,持续一段时间状况都没改善,则打开熔断器对该通道进行熔断。

当通道被剔除之后,需要对该通道的正常运作进行判断,在判断成功后将其重新加入。

具体的:

当通道触发剔除,则暂停通道若干时间;

若干时间后,选取该通道发送一条短信,如果发送失败,则继续暂停若干时间后继续发送,重复该过程直到发送成功;

重新加入该通道。

在一实施例中,一通道触发剔除,通道暂停5分钟,5分钟之后,就会试探性的选中此通道发送一条短信,如果发生失败则继续暂停5分钟,重复这个逻辑直到发送成功,然后重新把通道加入。

在上述过程中,通过将不工作的通道剔除,避免了由于该通道的故障而导致无法发送短信。通过对剔除后的通道的检测,在其正常工作时,重新将其加入,提高了短信发送的效率。

本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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