一种推送服务的重连方法及设备与流程

文档序号:15594175发布日期:2018-10-02 19:18阅读:151来源:国知局

本发明属于互联网技术领域,尤其涉及一种推送服务的重连方法及设备。



背景技术:

由于位于不同服务器之间的用户无法直接进行消息互传,因此可以通过其中一个服务器向推送服务数据库发布消息,继而将该消息向订阅了推送服务的另一服务器进行推送的方式,实现消息互传,因此服务器与推送服务数据库之间的通信链路是否可靠,则直接影响用户之间的通信效率。

现有推送服务的重连方法,主要是通过在服务器的主线程下创建一个循环任务来检测通信链路是否存在中断的情况,然而循环任务会为服务器带来较大的运算负担,在出现通信链路异常时,服务器不仅需要分配资源来执行重连操作,还需要花费额外的运算资源来维持该循环任务,从而降低了重连效率。



技术实现要素:

有鉴于此,本发明实施例提供了一种推送服务的重连方法及设备,以解决现有推送服务的重连方法,不仅需要分配资源来执行重连操作,还需要花费额外的运算资源来维持监测连接异常的循环任务,重连效率较低的问题。

本发明实施例的第一方面提供了一种推送服务的重连方法,包括:

若接收到推送服务启动指令,则激活异常重连监听器;所述异常重连监听器用于监测与推送服务数据库之间的通信链路是否异常;所述异常重连监听器配置有异常阈值以及重连响应参数;

将所述通信链路添加到应用环境采集线程的监听对象列表,并通过所述应用环境采集线程获取所述通信链路的运行参数;

调用所述异常重连监听器从所述应用环境采集线程的输出信号中提取所述运行参数,并确定所述运行参数的异常指数;

若所述异常指数大于所述异常阈值,则基于所述重连响应参数执行重连操作,并获取重连后的异常指数,直到所述重连后的异常指数小于或等于所述异常阈值。

本发明实施例的第二方面提供了一种推送服务的重连设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的各个步骤。

本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面的各个步骤。

实施本发明实施例提供的一种推送服务的重连方法及终端设备具有以下有益效果:

本发明实施例通过在检测到用户发起推送服务启动指令时,则激活用于监测与推送服务数据库之间的通信链路异常情况的异常重连监听器,并将上述通信链路添加到监听对象列表中,以实时获取该通信链路的运行参数;由于异常重连监听器配置有异常阈值以及重连响应参数,能够自动识别通信链路是否存在异常,而无需通过服务器的主线程进行异常监控,减少了异常监听操作所占用的资源。当异常重连监听器识别到基于运行参数计算的异常指数大于预设的预存阈值时,则会基于重连响应参数执行重连操作,维护与推送服务数据库之间的通信链路,提高了数据传输的可靠性。与现有的推送服务的重连方法相比,由于监听器具有自主性,可以交由子线程进行管理,因此本发明不需依赖主线程下的循环任务来对通信链路的异常进行检测,释放了大量原本用于维持循环任务的资源,从而提高了重连操作的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明第一实施例提供的一种推送服务的重连方法的实现流程图;

图2是本发明第二实施例提供的一种推送服务的重连方法s104具体实现流程图;

图3是本发明第三实施例提供的一种推送服务的重连方法s103具体实现流程图;

图4是本发明第四实施例提供的一种推送服务的重连方法具体实现流程图;

图5是本发明第五实施例提供的一种推送服务的重连方法的具体实现流程图;

图6是本发明一实施例提供的一种推送服务的重连设备的结构框图;

图7是本发明另一实施例提供的一种推送服务的重连设备的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例通过在检测到用户发起推送服务启动指令时,则激活用于监测与推送服务数据库之间的通信链路异常情况的异常重连监听器,并将上述通信链路添加到监听对象列表中,以实时获取该通信链路的运行参数;由于异常重连监听器配置有异常阈值以及重连响应参数,能够自动识别通信链路是否存在异常,而无需通过服务器的主线程进行异常监控,减少了异常监听操作所占用的资源。当异常重连监听器识别到基于运行参数计算的异常指数大于预设的预存阈值时,则会基于重连响应参数执行重连操作,维护与推送服务数据库之间的通信链路,提高了数据传输的可靠性,解决了现有推送服务的重连方法,不仅需要分配资源来执行重连操作,还需要花费额外的运算资源来维持监测连接异常的循环任务,重连效率较低的问题。

在本发明实施例中,流程的执行主体为推送服务的重连设备。该推送服务的重连设备包括但不限于:笔记本电脑、计算机、服务器、平板电脑以及智能手机等具有推送服务的重连功能的设备。特别地,该推送服务的重连设备具体为订阅了redis数据库服务器的设备,在订阅期间持续维护与redis数据库服务器之间的通信连接。图1示出了本发明第一实施例提供的推送服务的重连方法的实现流程图,详述如下:

在s101中,若接收到推送服务启动指令,则激活异常重连监听器;所述异常重连监听器用于监测与推送服务数据库之间的通信链路是否异常;所述异常重连监听器配置有异常阈值以及重连响应参数。

在本实施例中,推送服务的重连设备可通过订阅的方式接受推送服务器推送的信息,在该情况下,若推送服务器接收到来自其他设备发送的消息,将会向订阅了该推送服务器的各个设备发送接收到的消息,从而实现跨服务器之间的信息传递。当然,重连设备除了能够接受推送服务器推送的消息外,还可向推送服务器发布信息,并通过推送服务器向其他设备进行信息推送。

在本实施例中,当重连设备接收到用户发送的推送服务启动指令时,则会激活异常重连监听器,并通过该异常重连监听器监测重连设备与推送服务数据库之间的通信链路是否存在异常。可选地,当推送服务的重连设备启动时,则会自动与推送服务数据库建立通信连接,生成对应的通信链路,在该情况下,即重连设备在启动完毕后,会生成一个推送服务器启动指令,开启推送服务功能,并对应地激活异常重连接听器。

可选地,在s101之前还包括:推送服务的重连设备中业务层是以spring开源框架进行搭建。重连设备会创建一个监听器,并基于异常阈值以及重连响应参数配置该创建的监听器,关联该监听器以及所需监听的事件,即在spring的开源框架下配置一个监听器对应的listener类以及监听事件对应的event类,并在spring开源框架的配置文件中声明上述两个类。由于推送服务是在业务层运行的,而重连设备的业务层是基于spring开源框架搭建的,因此若在启动推送服务时能够自动激活异常重连监听器,则需要在spring开源框架下配置对应的listener类以及event类。

在本实施例中,异常重连监听器配置有异常阈值,基于异常阈值识别当前的通信链路是否处于异常状态,是一个异常识别的判别条件;该异常重连监听器还设置有重连响应参数,重连设备会基于该重连响应参数执行与之对应的重连操作。需要说明的是,上述两类参数可以由重连设备的用户进行设置,也可以由推送服务数据库统一发送给各个订阅了其推送服务的设备。在该情况下,当推送服务数据库检测到任一设备向其发送了推送服务注册请求,在返回注册成功信息时,会将上述两个参数封装于该注册成功信息内,以便订阅了该推送服务数据库的各个设备基于上述两类参数配置异常重连监听器。

在s102中,将所述通信链路添加到应用环境采集线程的监听对象列表,并通过所述应用环境采集线程获取所述通信链路的运行参数。

在本实施例中,重连设备在激活了异常重连监听器后,会将异常重连监听器所对应的监听对象,即重连设备与推送服务数据库之间的通信链路添加到应用环境采集线程的监听对象列表内,并通过应用环境采集线程获取该通信链路的运行参数,基于采集得到的运行参数,识别该通信链路是否处于异常状态。由于通信链路发生异常,一般可以反映在其运行参数上面,即传输过程中的相关参数,例如传输速率、时延、信噪比、误码率、信号强度等。

在本实施例中,应用环境采集线程主要用于获取所有种类监听器对应监听对象的运行参数。具体地,应用环境采集线程与重连设备中的所有端口建立了运行参数采集协议,基于该采集协议,各个端口的运行参数会自动上报给应用环境采集线程,继而不同监听器对应的监听对象的运行参数,以确定监听事件是否触发。

在本实施例中,重连设备与推送服务数据库建立了订阅关系,并通过通信链路接收该推送服务数据库推送的信息时,应用环境采集线程会持续获取通信链路的运行参数,基于获取时间的次序将该运行参数存储于对应的缓存区域,该缓存区域为一固定长度的队列,异常重连监听器可从对应的队列中获取所需的运行参数,并执行s103的相关操作。

在s103中,调用所述异常重连监听器从所述应用环境采集线程的输出信号中提取所述运行参数,并确定所述运行参数的异常指数。

在本实施例中,重连设备在设置了异常重连监听器后,该异常重连监听器会基于预设的采集频率,从应用环境采集线程中获取通信链路的运行参数。其中,该采集频率可以为重连设备的时钟频率,在该情况下,可以识别为该异常重连监听器实时监听通信链路的运行参数;该采集频率也可以基于用于进行设置,即一监听周期,在该情况下,监听器以预设的监听周期间隔从应用环境采集线程中获取运行参数。需要说明的是,应用环境采集线程存储该运行参数的缓存区域的大小可以基于监听频率所确定,即监听频率越高,所分配的缓存区域越少;反之,若监听频率越低,则所分配的缓存区域越大,以存储在监听间隔之间所获取得到的运行参数。

可选地,在本实施例中,设置异常重连监听器时会为该监听器配置对应的监听事件,对于异常重连监听器的监听事件具体为通信链路的运行参数,因此会为该监听事件配置对应的event类。而在将通信链路添加到应用环境采集线程的监听对象列表时,也需要在监听对象列表中创建一个onapplicationevent类。重连设备可以将异常重连监听器对应的event类与监听对象列表中的onapplicationevent类配置为相同的类名,从而提高了异常重连监听器快速从应用环境采集线程中提取通信链路的运行参数。

在本实施例中,重连设备在获取了通信链路的运行参数后,会通过预设的异常系数转换算法,计算该运行参数对应的异常指数。可选地,重连设备可以为运行参数中各个参数项配置一个对应的阈值范围,计算运行参数中超过阈值范围的参数项的个数,基于该参数项个数确定当前时刻通信链路的异常指数。当然,该异常系数转换算法也可以为一哈希函数,将运行参数导入到该哈希函数中,确定还运行参数对应的哈希值,将该哈希值作为运行参数对应的异常指数。

在本实施例,若异常指数小于或等于异常重连监听器配置的异常阈值,则表示当前重连设备与推送服务数据库之间的通信链路正常运作,无需重新连接,可以等待下一个监听周期的到达,返回s102的操作;反之,若该异常指数大于异常阈值,则表示当前的通信链接存在异常或已经中断,需要执行s104的相关操作。

在s104中,若所述异常指数大于所述异常阈值,则基于所述重连响应参数执行重连操作,并获取重连后的异常指数,直到所述重连后的异常指数小于或等于所述异常阈值。

在本实施例中,若基于运行参数确定的异常指数大于异常阈值,则重连设备会从异常重连监听器中提取预先配置的重连响应参数,并基于该重连响应参数执行重连操作,以重新建立重连设备与推送服务数据库之间的通信链接,在重连操作执行完毕后,重连设备会再次调用异常重连监听器提取运行参数并计算重连后所对应的异常指数,若该异常执行仍然大于异常阈值,则再次执行s104的相关操作,直到异常指数小于或等于异常阈值时,表示重连设备与推送服务数据库的通信链路恢复正常。

可选地,重连响应参数包含有重连周期,重连设备可以基于该重连周期与数据库服务器建立通信链路。该重连响应参数还可以包含备用数据库的通信地址,重连设备可以与备用数据库建立通信连接,并通过备用数据库接收其他设备发布的消息。

以上可以看出,本发明实施例提供的一种推送服务的重连方法通过在检测到用户发起推送服务启动指令时,则激活用于监测与推送服务数据库之间的通信链路异常情况的异常重连监听器,并将上述通信链路添加到监听对象列表中,以实时获取该通信链路的运行参数;由于异常重连监听器配置有异常阈值以及重连响应参数,能够自动识别通信链路是否存在异常,而无需通过服务器的主线程进行异常监控,减少了异常监听操作所占用的资源。当异常重连监听器识别到基于运行参数计算的异常指数大于预设的预存阈值时,则会基于重连响应参数执行重连操作,维护与推送服务数据库之间的通信链路,提高了数据传输的可靠性。与现有的推送服务的重连方法相比,由于监听器具有自主性,可以交由子线程进行管理,因此本发明不需依赖主线程下的循环任务来对通信链路的异常进行检测,释放了大量原本用于维持循环任务的资源,从而提高了重连操作的效率。

图2示出了本发明第二实施例提供的一种推送服务的重连方法s104的具体实现流程图。参见图2所示,相对于图1述实施例,本实施例提供的一种推送服务的重连方法中s104包括:s1041~s1044,具体详述如下:

进一步地,所述重连响应参数包括:重连周期、调整步长以及重连次数阈值;所述基于所述重连响应参数执行重连操作,包括:

在s1041中,根据所述重连周期间隔与所述推送服务数据库建立通信链路,并调整重连计数器的计数值。

在本实施例中,重连响应参数中包含重连周期,重连设备在首次检测到异常指数大于预设的异常阈值时,会创建一个重连计数器,以统计该次重连设备与推送服务数据库之间通信链路异常而执行的重连操作的次数。需要说明的是,该重连计数器的初始值为0,每执行一次重连操作,重连设备则会对该重连计数器进行加1操作,从而通过读取该重连计数器的计数器,则可确定基于当前的重连周期执行重连操作的次数。

在本实施例中,重连设备会先断开与推送服务器数据库之间的通信链路,并向推送服务数据库发送一个连接请求,以重新建立通信链路。若重连设备并没有在预设的时间阈值内接收到推送服务数据库返回的连接确认信息,则增加重连计数器的计数值,并再次等待下一重连周期的到达,再一次发送连接请求,重复执行上述步骤;若在预设的时间阈值内接收到推送服务数据库返回的连接确认信息,则通过应用环境采集线程获取该通信链路的运行参数,并执行s1042的相关操作。

在s1042中,获取重连后的所述通信链路的运行参数,并调用所述异常重连监听器计算重连后的所述运行参数的异常指数。

在本实施例中,如s102以及s103所述,由于该通信链路已经添加到应用环境采集线程的监听对象列表中,因此在通信链路重新连接后,同样可以通过应用环境采集线程获取该通信链路的运行参数,继而重连异常监听器可以从应用环境采集线程的输出信号中提取该运行参数并计算其对应的异常指数。需要说明的是,该异常指数的计算方法可以参照s103中所述的计算方法,在此不再赘述。

在本实施例中,在确定了重连后通信链路所对应的异常指数后,会把该异常指数再一次与异常阈值进行比较,以确定当前的通信链路是否处于异常状态。若该异常指数小于或等于异常阈值,则不论重连计数器的计数值是否大于重连次数阈值,均识别重连成功,继续通过该通信链路接收推送服务器的推送的消息;反之,若重连后,该异常指数依然大于异常阈值,则表示重连失败,基于重连计数器的计数值的大小,选择执行s1043或s1044的操作。

在s1043中,若所述重连计数器的计数值小于或等于所述重连次数阈值,且重连后的所述异常指数大于所述异常阈值,则返回执行根据所述重连周期间隔与所述推送服务数据库建立通信链路的操作。

在本实施例中,当重连后的异常系数仍大于异常阈值时,表示当前通信链路仍处于异常状态,需要再次执行重连操作,在该情况下,若重连计数器的计数值小于或等于重连次数阈值,则表示基于当前重连周期,所执行的重连操作次数仍未超出预设值,可以继续基于该重连周期间隔与推送服务数据库建立通信链路,因此会返回执行根据所述重连周期间隔与所述推送服务数据库建立通信链路的操作。

在s1044中,若所述重连计数器的计数值大于所述重连次数阈值,且重连后的所述异常指数大于所述异常阈值,则基于所述调整步长更新所述重连周期,初始化所述重连计数器的计数值,并返回执行根据所述重连周期间隔与所述推送服务数据库建立通信链路的操作。

在本实施例中,若重连计数器的计数值大于重连次数阈值,则表示基于当前重连周期所执行的重连操作次数超出了预设值,需要对重连周期进行调整,以优化重连设备的重连操作。具体地,重连设备会基于调整步长更新重连周期,该更新操作可以为基于调整步长增加重连周期的时长,可以基于调整步长减少重连周期的时长。

对于第一种情况,即基于调整步长增加重连周期的时长,在该情况下,重连周期的初始值较小,以便在刚检测到通信链路异常时,能够以较高频率快速恢复通信连接。但由于高频率重连会消耗重连设备较多的资源,因此当基于该重连周期执行重连操作的次数超过重连次数阈值后,仍未恢复通信连接,则需要降低重连的频率,以减少重连操作所消耗的资源数。当然,重连设备可以设置一个最大重连周期,当更新后的重连周期大于最大重连周期时,会以最大重连周期执行重连操作。

对于第二种情况,即基于调整步长减少重连周期的时长,在该情况下,重连周期的初始值较大,由于发生异常情况下,一般线路修复需要一定的处理时间,若该情况下高频发送连接请求,反而会增大线路的负载,从而降低了修复的速度。为了避免上述情况,重连设备设置重连周期的初始值较大,并逐步减少该重连周期的时长,随着时间的推移,修复也逐渐完成,因此加大重连频率可以快速恢复通信。

在本发明实施例中,基于重连周期、调整步长以及最大重连次数阈值这三个参数,动态调整重连操作的触发时机,以减少重连操作所消耗的设备资源的同时,还能够提高重连效率。

图3示出了本发明第三实施例提供的一种推送服务的重连方法s103的具体实现流程图。参见图3所示,相对于图1所述实施例,本实施例提供的一种推送服务的重连方法中s103包括s1031~s1033,具体详述如下:

进一步地,所述运行参数包括:传输速率、误码率以及信噪比;所述确定所述运行参数的异常指数,包括:

在s1031中,将所述传输速率以及所述通信链路的历史速率导入到第一异常因子计算模型,计算第一异常因子;所述异常因子计算模型具体为:

其中,errorfactor1为所述第一异常因子;hstyratei为第i个所述历史速率;currentrate为所述传输速率;为历史速率的均值;n为所述历史速率的个数。

在本实施例中,运行参数包括传输速率、误码率以及信噪比,重连设备分别基于上述三类参数确定三个异常因子,并基于异常因子来计算运行参数所对应的异常指数,从而得到的异常指数能够较准确地确定当前的通信链路是否处于异常状态。

在本实施例中,推送服务的重连设备会基于记录有的历史速率,计算历史速率的均值,并计算历史速率的标准差,确定标准的偏移量,继而通过当前获取得到的传输速率与历史速率的均值,确定当前的偏移量,计算当前的偏移量与标准的偏移量之间的比值,将该比值作为第一异常因子。当比值越大,则表示当前的偏移量存在异常,速率超过正常的速率范围,从而在计算异常指数时,其贡献量也较大;反之,若该比值越小,则表示当前的偏移量在正常的范围内,传输速率这一参量并不存在异常。

在s1032中,基于所述传输速率以及所述误码率的之间的乘积,确定第二异常因子。

在本实施例中,重连设备在确定了当前传输链路的传输速率以及误码率后,可以计算传输速率以及误码率之间的乘积,确定单位时间内错误字符的个数,基于该错误字符的个数作为第二异常因子。由于错误的字符越大,则表示当前通信链路的通信质量越差,从而第二异常因子的数值也越大。

在s1033中,将所述第一异常因子、第二异常因子以及所信噪比导入异常指数计算模型,计算所述运行参数的异常指数;所述异常指数计算模型具体为:

errorlevel=10lg(weight1*errorfactor1+weight2*errorfactor2)

+weight3*snr

其中,errorlevel为所述异常指数,errorfactor2为所述第二异常因子;snr为所述信噪比,weight1、weight2、weight3为预设系数。

在本实施例中,由于信噪比的单位为分贝(db),为了保证量纲的统一,重连设备在计算了第一异常因子以及第二异常因子后,将上述两个异常因子转换为以db为单位的参数值,然后在计算与信噪比之间的和,作为运行参数的异常指数。

在本实施例中,第一异常因子、第二异常因子以及信噪比均配置有一个权重值,即上述的weight1、weight2、weight3,用户可以基于对于传输消息的消息要求,调整上述三个权重的数值。例如,若需要输出的消息的数据量较大,则重点关注的是传输速率,从而weight1的数值可以大于其余两个预设系数的值;若需要传输的消息的数据量较小,则需要保证每次接收到的消息的准确率,避免重复发送,因此weight2、weight3的数值可以大于weight1的值。

在本发明实施例中,分别基于运行参数中包含的参数项,确定对应的异常因子,然后基于各个异常因子计算异常指数,从而提高了异常指数对于通信链路异常情况表征的准确率,继而提高了异常识别的准确率。

图4示出了本发明第四实施例提供的一种推送服务的重连方法的具体实现流程图。参见图4所示,相对于图1~图3所述实施例,本实施例提供的一种推送服务的重连方法中在所述若接收到推送服务启动指令,则激活异常重连监听器之前,还包括:s401~s402,具体详述如下:

在s401中,向所述推送服务数据库发送推送授权请求,并获取所述推送服务数据库的标识。

在本实施例中,推送服务的重连设备可以同时与多个推送服务数据库连接,从而接收多个推送服务数据库推送的消息,即重连设备需要同时维护多条通信链路。为了区分不同的通信链路并配置多个监听器,重连设备在向推送服务数据库发送推送授权请求时,即与推送服务数据库建立订阅关系时,则获取该推送服务数据库的标识,以通过该标识区分不同的推送服务数据库。

具体地,重连设备向推送服务数据库发送推送授权请求,该数据库对该推送授权请求进行鉴权操作,识别该设备是否具有权限订阅该数据库推送的消息,若鉴权成功,例如重连设备的设备编号在推送服务数据库的白名单内,则返回一个授权成功信息给推送服务数据,并将该数据库对应的标识封装于授权成功信息内,重连设备从该授权成功信息提取该标识。

在s402中,根据所述标识以及用户输入的所述异常阈值和所述重连响应参数,创建所述推送服务数据库对应的所述异常重连监听器。

在本实施例中,重连设备在获取了推送服务数据库的标识,以及接收用户设置的异常阈值以及重连响应参数后,可以创建该推送服务数据库的异常重连监听器,在后续接收该推送服务数据库发送的消息时,通过该异常重连监听器监听与其建立的通信链路。

需要说明的是,重连设备在执行s101的操作时,该推送服务启动指令也包含了目标推送服务数据库的标识,从而重连设备则启动与该标识所对应的异常重连监听器。

在本发明实施例中,在创建异常重连监听器时为其配置对应的推送服务数据库的标识,以实现同时接收不同数据库推送的消息,提高了重连设备获取信息的效率,并且由于监听器不依赖主进程维护,可通过异步进程执行,从而能够同时通过多个监听器维护多条通信链路。

图5示出了本发明第五实施例提供的一种推送服务的重连方法的具体实现流程图。参见图5所示,相对于图1-图3所述实施例,本实施例提供的一种推送服务的重连方法在所述确定所述运行参数的异常指数之后,还包括:s501以及s502,具体详述如下:

在s501中,若所述异常指数小于或等于所述异常阈值,则向所述推送服务数据库发送一个测试数据包。

在本实施例中,若异常指数小于或等于异常阈值,则表示推送服务的重连设备与推送服务数据库之间的通信链路并不存在异常,但需要接受推送消息除了链路无异常外,还需要数据库服务器的端口正常,因此,会向推送服务数据库发送一个测试数据包,以检测与推送服务数据库连接的端口是否能够对请求进行应答。

在本实施例中,若该端口无异常,则在预设的时间内向重连设备返回应答数据包,若重连设备在预设时间内接收到该应答数据包,则识别该通信链路以及该端口无异常,则保持当前连接状态,接收推送服务数据库发送的消息;反之,拖未在预设的时间内接收到该应答数据包,则执行s502的相关操作。

在s502中,若在预设时间内未接收到所述推送服务数据库基于所述测试数据包返回的应答数据包,则执行所述基于所述重连响应参数执行重连操作操作。

在本实施例中,若重连设备未在预设时间内接收到推送服务数据库基于测试数据包返回的应答数据包,则表示该通信链路的运行参数虽然并无异常,但推送服务数据库无法应答重连设备发起的请求,即可能与其连接的端口存在异常,需要与数据库重新建立连接,以更换或激活该端口,从而使得端口能够正常收发数据。

在本发明实施例中,通过向推送服务数据库发送测试数据包,以确保连接的端口能够正常收发数据,不仅关注通信链路的运行参数是否在预设的范围内,还能检测端口性能状态,提高了维护的准确率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图6示出了本发明一实施例提供的一种推送服务的重连设备的结构框图,该推送服务的重连设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。

参见图6,所述推送服务的重连设备包括:

监听器激活单元61,用于若接收到推送服务启动指令,则激活异常重连监听器;所述异常重连监听器用于监测与推送服务数据库之间的通信链路是否异常;所述异常重连监听器配置有异常阈值以及重连响应参数;

运行参数获取单元62,用于将所述通信链路添加到应用环境采集线程的监听对象列表,并通过所述应用环境采集线程获取所述通信链路的运行参数;

运行参数提取单元63,用于调用所述异常重连监听器从所述应用环境采集线程的输出信号中提取所述运行参数,并确定所述运行参数的异常指数;

重连执行单元64,用于若所述异常指数大于所述异常阈值,则基于所述重连响应参数执行重连操作,并获取重连后的异常指数,直到所述重连后的异常指数小于或等于所述异常阈值。

可选地,,所述重连响应参数包括:重连周期、调整步长以及重连次数阈值;所述重连执行单元64包括:

重连计数单元,用于根据所述重连周期间隔与所述推送服务数据库建立通信链路,并调整重连计数器的计数值;

异常指数重获取单元,用于获取重连后的所述通信链路的运行参数,并调用所述异常重连监听器计算重连后的所述运行参数的异常指数;

第一重连单元,用于若所述重连计数器的计数值小于或等于所述重连次数阈值,且重连后的所述异常指数大于所述异常阈值,则返回执行根据所述重连周期间隔与所述推送服务数据库建立通信链路的操作;

第二重连单元,用于若所述重连计数器的计数值大于所述重连次数阈值,且重连后的所述异常指数大于所述异常阈值,则基于所述调整步长更新所述重连周期,初始化所述重连计数器的计数值,并返回执行根据所述重连周期间隔与所述推送服务数据库建立通信链路的操作。

可选地,所述运行参数包括:传输速率、误码率以及信噪比;所述运行参数提取单元63包括:

第一异常因子计算单元,用于将所述传输速率以及所述通信链路的历史速率导入到第一异常因子计算模型,计算第一异常因子;所述异常因子计算模型具体为:

其中,errorfactor1为所述第一异常因子;hstyratei为第i个所述历史速率;currentrate为所述传输速率;为历史速率的均值;n为所述历史速率的个数;

第二异常因子计算单元,用于基于所述传输速率以及所述误码率的之间的乘积,确定第二异常因子;

异常指数计算单元,用于将所述第一异常因子、第二异常因子以及所信噪比导入异常指数计算模型,计算所述运行参数的异常指数;所述异常指数计算模型具体为:

errorlevel=10lg(weight1*errorfactor1+weight2*errorfactor2)

+weight3*snr

其中,errorlevel为所述异常指数,errorfactor2为所述第二异常因子;snr为所述信噪比,weight1、weight2、weight3为预设系数。

可选地,所述推送服务的重连设备还包括:

数据库标识获取单元,用于向所述推送服务数据库发送推送授权请求,并获取所述推送服务数据库的标识;

监听器创建单元,用于根据所述标识以及用户输入的所述异常阈值和所述重连响应参数,创建所述推送服务数据库对应的所述异常重连监听器。

可选地,所述推送服务的重连设备还包括:

测试数据包发送单元,用于若所述异常指数小于或等于所述异常阈值,则向所述推送服务数据库发送一个测试数据包;

第三重连单元,用于若在预设时间内未接收到所述推送服务数据库基于所述测试数据包返回的应答数据包,则执行所述基于所述重连响应参数执行重连操作操作。

因此,本发明实施例提供的推送服务的重连设备同样可以不需依赖主线程下的循环任务来对通信链路的异常进行检测,释放了大量原本用于维持循环任务的资源,从而提高了重连操作的效率。

图7是本发明另一实施例提供的一种推送服务的重连设备的示意图。如图7所示,该实施例的推送服务的重连设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如推送服务的重连程序。所述处理器70执行所述计算机程序72时实现上述各个推送服务的重连方法实施例中的步骤,例如图1所示的s101至s104。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示模块61至64功能。

示例性的,所述计算机程序72可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述推送服务的重连设备7中的执行过程。例如,所述计算机程序72可以被分割成监听器激活单元、运行参数获取单元、运行参数提取单元以及重连执行单元,各单元具体功能如上所述。

所述推送服务的重连设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述推送服务的重连设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是推送服务的重连设备7的示例,并不构成对推送服务的重连设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述推送服务的重连设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器70可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器71可以是所述推送服务的重连设备7的内部存储单元,例如推送服务的重连设备7的硬盘或内存。所述存储器71也可以是所述推送服务的重连设备7的外部存储设备,例如所述推送服务的重连设备7上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器71还可以既包括所述推送服务的重连设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述推送服务的重连设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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