一种基于数据异步发送的自动重连方法及装置与流程

文档序号:38167497发布日期:2024-05-30 12:21阅读:11来源:国知局
一种基于数据异步发送的自动重连方法及装置与流程

本发明涉及数据智能算法,特别是涉及一种基于数据异步发送的连接池自动重连方法及装置领域。


背景技术:

1、网络连接会经过多层节点的跳转,如果中间某个节点存在一些网络的波动,有可能会导致数据丢失或是数据延迟较大。现有的网络连接技术通常为同步发送或异步发送,同步发送指的是在数据传输过程中,发送端和接收端的数据传输是同步进行的,发送端和接收端在传输数据之前必须达成一致,在传输过程中,接收端会不断向发送端发出请求,发送端需要根据接收到的请求来进行数据传输。同步传输需要发送端和接收端保持同步的速度和时间,确保数据以恰当的速度传输并被准确接收,异步发送指的是,在数据传输过程中,发送端和接收端的数据传输是异步进行的,发送端和接收端之间不需要保持同步,在传输过程中,发送端将数据传输给接收端后,便可以继续进行其他操作,而无需等待接收端的响应,接收端在接收到数据后会进行处理,并不需要立即向发送端发出请求。

2、如果在数据传输过程中发生了一些网络上的波动,就有可能导致一些已经发送的数据永远都接收不到处理结果、或者是已经过了超时时间才接收到结果,这些都会认为是数据发送失败导致出现多次重试发送或者太多的失败响应给用户的情况,多次重试引起数据处理能力的下降,而一直响应失败给到用户,则会降低用户对系统的信任度。

3、针对上述问题现有的技术,通常都是针对同步发送场景,利用心跳机制来确保连接的有效性,根据心跳结果的耗时来判断连接是否还是有效的,其根据单次的耗时进行判断的方式,如果网络有抖动,很容易误判导致不必要的连接重建;且发送端在这个耗时中间是无法进行其它数据发送的。而对数据异步发送场景,则缺失了关于自动重连的一些研究。


技术实现思路

1、基于此,本发明的目的在于,提供一种基于数据异步发送的自动重连方法及装置,在现有的连接池的基础上,扩展出基于业务数据处理结果的连接自动重连机制。根据业务数据的情况,无需人工的介入,自行判定是否需要重新建立连接。从而降低网络波动导致的数据发送失败率,增强系统的健壮性,且无需对每一个连接进行持续监测,降低了系统的负载,提高了检测效率。

2、本发明所述的一种基于数据异步发送的连接池自动重连方法,其包括:

3、获取发送端的待发送数据,与连接池内一通道连接并完成待发送数据的传输,并记录当前时间作为所述待发送数据的发送时间;

4、待发送数据传输完成后,使用一滑动时间窗口记录单位时间内的数据发送量,并将每一条已发送数据对应的数据标识和发送时间存储到一缓存数据表中;

5、获取接收端的响应数据并记录响应时间,根据所述响应数据的数据标识在所述缓存数据表中找到对应发送数据的发送时间,根据发送时间和响应时间之差得到请求响应时间;

6、获取前一个周期内的待发送数据的总响应量以及对应的总响应时间,计算平均请求响应时间,若平均请求响应时间大于周期内请求响应时间阈值,则断开连接池内的所有连接,并且销毁所有连接,其中周期为预设的数据统计周期;

7、连接池中可用连接数少于已分配的连接数时,重新建立连接池的连接,完成重连。

8、进一步地,若平均请求响应时间小于周期内请求响应时间阈值,则进行如下检测;

9、从当前时间往前跳过一个周期,获取倒数第二个周期内的发送数据总量以及所述倒数第二个周期内未接收到响应的数据总量,计算未响应数据占比,若未响应数据占比大于预周期内未响应阈值,则断开连接池内的所有连接,并且销毁所有连接。

10、进一步地,查找所述缓存数据表中的发送时间早于当前时间减去数据超时周期得到的时间对应的数据,移除对应的缓存数据。

11、进一步地,若与连接池内一通道连接并完成待发送数据的传输过程中,数据发送失败,此时断开当前使用的连接,销毁连接池中对应的连接,重新建立连接发送所述待发送数据。

12、另一方面,本技术提供一种基于数据异步发送的连接池自动重连装置,其包括:

13、发送单元:用于获取发送端的待发送数据,与连接池内一通道连接并完成待发送数据的传输,并记录当前时间作为所述待发送数据的发送时间;

14、数据缓存单元:用于待发送数据传输完成后,使用一滑动时间窗口记录单位时间内的数据发送量,并将每一条已发送数据对应的数据标识和发送时间存储到一缓存数据表中;

15、请求响应时长计算单元:用于获取接收端的响应数据并记录响应时间,根据所述响应数据的数据标识在所述缓存数据表中找到对应发送数据的发送时间,根据发送时间和响应时间之差得到请求响应时间;

16、连接异常判定单元:用于获取前一个周期内的待发送数据的总响应量以及对应的总响应时间,计算平均请求响应时间,若平均请求响应时间大于周期内请求响应时间阈值,则断开连接池内的所有连接,并且销毁所有连接,其中周期为预设的数据统计周期;

17、连接重连单元:用于连接池中可用连接数少于已分配的连接数时,重新建立连接池的连接,完成重连。

18、进一步地,所述连接异常判定单元还包括:

19、未响应异常判定子单元:用于从当前时间往前跳过一个周期,获取倒数第二个周期内的发送数据总量以及所述倒数第二个周期内未接收到响应的数据总量,计算未响应数据占比,若未响应数据占比大于预周期内未响应阈值,则断开连接池内的所有连接,并且销毁所有连接。

20、进一步地,所述基于数据异步发送的连接池自动重连装置还包括:

21、数据清理单元:用于查找所述缓存数据表中的发送时间早于当前时间减去数据超时周期得到的时间对应的数据,移除对应的缓存数据。

22、进一步地,所述发送单元还包括:

23、发送异常重连子单元:用于若与连接池内一通道连接并完成待发送数据的传输过程中,数据发送失败,此时断开当前使用的连接,销毁连接池中对应的连接,重新建立连接发送所述待发送数据。

24、另一方面,本技术还提供一种电子设备,包括:

25、至少一个存储器以及至少一个处理器;

26、所述存储器,用于存储一个或多个程序;

27、当所述一个或多个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述提及的任意一项所述的一种基于数据异步的连接池自动重连方法的步骤。

28、另一方面,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任意一项所述的一种基于数据异步的连接池自动重连方法的步骤。

29、本发明提供的一种基于数据异步发送的连接池自动重连方法,在现有的连接池的基础上,扩展出基于业务数据处理结果的连接自动重连机制。根据业务数据的发送和响应数据在一预设周期内的所有响应数据的请求响应时长和响应数据总量来计算在这一周期内的响应数据的平均请求响应时长;将平均请求响应时长这一特征与预设的周期内请求响应时间阈值进行比较,来判断已收到响应的数据在建立网络连接这一过程的流畅度,进一步能够判定在该连接池上的连接通道的状况是否满足异步发送要求,若不满足则断开并销毁连接,连接池重新建立新的连接。进一步的,为了避免网络异常导致数据丢失情况无法发现,还计算一个周期内的未响应数据占比,若未响应数据占比大于预设的周期内未响应阈值则断开并销毁连接,连接池重新建立新的连接,此方法无需人工的介入就能够自行判定连接池中的连接是否存在网络连接异常或者网络延迟偏高的状态,是否需要重新建立连接,从而降低网络波动导致的数据发送失败率,增强系统的健壮性,且无需对每一个连接进行持续监测,降低了系统的负载,提高了检测效率。

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

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