一种控制报文发送的方法及装置的制造方法_2

文档序号:9202600阅读:来源:国知局
报文。
[0045] 例如,网关允许的报文发送速度可W为在10秒钟时间内允许发送5条报文。在一 些实施例中,互联网短信网关ISMG允许的短信处理速度可W为在1秒钟内允许发送500条 短f目。
[0046]S102、接收第M条待发送报文,计算当前时间与第M-N条报文的发送时间之间的差 值;其中,M大于N。
[0047]S103、判断当前时间与第M-N条报文的发送时间之间的差值是否大于或等于第一 设定时间。若是,则转至步骤S104 ;若否,则转至步骤S105。
[004引 S104、发送第M条待发送报文。
[0049]S105、控制第M条待发送报文的发送时间。
[0050] 在上述步骤S101中,获取网关允许的报文发送速度后,还可根据获取的网关允许 的报文发送速度,确定网关在第一设定的时间内允许发送的报文数量N;并根据网关在第 一设定的时间内允许发送的报文数量N,创建数组,所述数组用于存放报文的发送时间,且 所述数组的大小与所述网关在第一设定的时间内允许发送的报文数量相同。
[0051] 在上述步骤S104中,在将第M条待发送报文进行发送后,可将第M条待发送报文 的发送时间覆盖第M-N条报文的发送时间。
[0052] 进一步地,在将第M条待发送报文的发送时间覆盖第M-N条报文的发送时间后,还 可将数组的下标加1 ;若数组的下标加1后与N的值相同,则将数组的下标置0。
[0053] 下面通过一个具体的例子对上述的内容进行详细的解释说明。
[0054] 例如,假设获取的网关允许的报文发送速度为10秒钟内发送5条报文,则可根据 获取的网关允许的报文发送速度为10秒钟内发送5条报文,创建一个数组A,且数组A的 大小为5,数组[A]的初始元素值为[0,0,0,0,0],即数组[A]中[A]。到[A] 4中的元素值当 前均为零。进一步假设网关将第1条报文至第5条报文进行发送的时间分别为;15:00:02、 15:00:04、15:00:06、15:00:08、15:00:10,则此时数组[A]中[A]。到[A] 4中的元素值分别 为[15:00:02,15:00:04,15:00:06,15:00:08,15:00:10]。在发完第 5 条报文后,可将数组 [A]的下标加1,由于此时数组[A]的下标为4,并且4+1 = 5, 5与数组大小相同,则将数组 的下标置0即此时数组的下标为0,表示为[A]。。进一步假设当接收到第6条待发送报文 时,当前时间为15:00:13,则计算当前时间与数组[A]中存储的第1条报文的发送时间之 间的差值即计算15:00:13与15:00:02之间的差值,可得到15:00:13与15:00:02之间的 差值为11秒,说明发送上述5条报文花费的时间为11秒钟(11秒钟大于设定的时间10秒 钟),此时,将报文发送给网关的速度速度低于网关允许的报文处理速度,因此无需控制第 6条报文的发送时间,只需将第6条报文发送即可。在将第6条报文发送后,可将第6条报文 的发送时间覆盖数组[A]中第1条报文的发送时间,此时,数组A中的元素值为[15:00:13, 15:00:04,15:00:06,15:00:08,15:00:10]。在将第6条报文的发送时间覆盖数组[A]中第 1条报文的发送时间后,将数组[A]的下标加1,由于此时数组[A]的下标为0,在将数组的 标进行加1后(0+1 = 1),数组的下标为1,表示为[A]i。
[00巧]在上述步骤S105中,若当前时间与第M-N条报文的发送时间的差值小于第一设定 时间,则控制第M条待发送报文的发送时间,具体为;等待第一时长后,发送第M条待发送报 文。
[0056] 在具体的实施中,为了提高系统性能,一般会采用多线程同时发送的处理方式。为 了防止多线程冲突,导致控制失败,在等待第一时长后,第M条报文不会直接发送,而会重 新由控制程序进行判断。为了防止某个报文等待时间过长,在具体实施时,可在程序中使用 公平锁。
[0057] 下面通过一个具体的例子对控制第M条待发送报文的发送时间的情形进行详细 的解释说明。为了便于描述,在下述举例中W单线程为例进行说明。
[0058] 例如,假设获取的互联网短信网关ISMG允许的报文发送速度为10秒钟内发送5 条短信,则可根据获取的互联网短信网关ISMG允许的报文发送速度为10秒钟内发送5条 短信,创建一个数组A,且数组A的大小为5,数组[A]的初始元素值为[0,0,0,0,0],即数 组[A]中[A]。到[A] 4中的元素值当前均为零。进一步假设互联网短信网关ISMG将第1 条短信至第5条短信进行发送的时间分别为;15:00:02、15:00:04、15:00:06、15:00:08、 15:00:10,则此时数组[A]中[A]。到[A] 4中的元素值分别为[15:00:02,15:00:04, 15:00:06,15:00:08,15:00:10]。在发完第5条报文后,可将数组[A]的下标加1,由于此时 数组[A]的下标为4,并且4+1 = 5, 5与数组大小相同,则将数组的下标置0即此时数组的 下标为0,表示为[A]。。进一步假设当接收到第6条待发送短信时,当前时间为15:00:11, 则计算当前时间与数组[A]中存储的第1条短信的发送时间之间的差值即计算15:00:11 与15:00:02之间的差值,可得到15:00:11与15:00:02之间的差值为9秒,说明发送上述 5条短信花费的时间为9秒钟巧秒钟小于设定的时间10秒钟),此时,将短信发送给互联 网短信网关ISMG的速度高于互联网短信网关ISMG允许的短信处理速度,因此需控制第6 条短信的发送时间,即,将第6条短信等待第一时长后再进行发送,则等待的第一时长为10 秒钟-9秒钟=1秒钟,即第6条短信等待的第一时长为1秒钟。在等待1秒钟后,将第6 条短信进行发送,即第6条短信的发送时间为15:00:12。在将第6条报文发送后,可将第 6条报文的发送时间覆盖数组[A]中第1条报文的发送时间,此时,数组A中的元素值为 [15:00:12,15:00:04,15:00:06,15:00:08,15:00:10]。在将第 6 条报文的发送时间覆盖数 组[A]中第1条报文的发送时间后,将数组[A]的下标加1,由于此时数组[A]的下标为0, 在将数组的下标进行加1后,数组的下标为1(0+1 = 1),表示为[A]i。
[0059] 基于上述举例的基础上,按照上述原理,可W依次控制第7条、第8条、第9条…… 第M条短信的发送时间,从而能够保证任意时间段内短信的发送速度均不超速,因此,能够 通过控制第M条报文的发送时间,控制任意时间段内报文的发送速度均不超速W减轻互联 网短信网关ISMG的压力,避免出现互联网短信网关ISMG响应速度变慢、短信发送失败、互 联网短信网关ISMG崩溃的情况。
[0060] 为了进一步的降低网关的压力,还可在接收第N条待发送报文时,计算当前时间 与第一条报文的发送时间之间的差值,若所述当前时间与第一条报文的发送时间之间的差 值大于或等于第一设定时间,则发送第N条待发送报文;若当前时间与第一条报文的发送 时间的差值小于第一设定时间,则控制第N条待发送报文的发送时间。
[0061] 当获取网关允许的报文发送速度为100毫秒内发送的最大条消息数时,则可实现 上述方法流程的部分程序代码如下(该程序代码供本领域技术人员参考):
[0062]
[0063]
[0064]
[0065]
[0066] 根据W上内容,可W看出,通过在接收到第M条待发送报文时,将当前时间与第 M-N条报文的发送时间求差值,并将求得的差值与网关允许的报文发送速度中的第一设定 时间相比较,并在所述差值小于第一设定时间时,控制第M条报文的发送时间,从而能够保 证任意时间段内报文的发送速度均不超速,因此,能够通过控制第M条报文的发送时间,控 制任意时间段内报文的发送速度均不超速W减轻网关的压力,避免出现网关响应速度变 慢、报文发送失败、网关崩溃的情况。
[0067] 基于相同的技术构思,本发明实施例还提供一种控制报文发送的装置,该装置可 执行上述方法实施例。
[006引图2,为本发明实施例提供的控制报文发送的装置的结构示意图。如图所示,该装 置可包括:
[0069] 获取模块21,用于获取网关允许的报文发送速度,所述报文发送速度为在第一设 定时间内允许发送N条报文;
[0070] 接收模块22,用于接收第M条待发送报文,计算当前时间与第M-N条报文的发送时 间的差值;其中,M大于N;
[0071] 控制模块23,用于在所述当前时间与第M-N条报文的发送时间的差值大于或等于 所述第一设定时间时,发送所述第M条待发送报文;在所述当前时间与第M-N条报文的发送 时间的差值小于所述第一设定时间时,控制所述第M条待发送报文的发送时间。
[0072] 较佳的,控制模块23,具体用于;在所述当前时间与第M-N条报文的发送时间的差 值小于所述第一设定时间时,控制所述第M条待发送报文的发送时间,具体为;等待第一时 长后,发送所述第M条待发送报文;所述第一时长大于或等于所述当前时间与第
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1