From 36ee034bcf8462df082882e32ccf4cb5abb481ee Mon Sep 17 00:00:00 2001 From: NI Date: Tue, 13 Aug 2019 10:55:48 +0800 Subject: [PATCH] Use ReadTimeout*0.8 as max heartBeatTimeout rather than ReadTimeout/2. Heartbeat is usually returned very quickly, no need to force two heartbeat within one read timeout period. User can change the configuration to bring back the setting if needed. --- application/configuration/config.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/application/configuration/config.go b/application/configuration/config.go index aeb4718..c3747d3 100644 --- a/application/configuration/config.go +++ b/application/configuration/config.go @@ -79,10 +79,11 @@ func (s Server) WithDefault() Server { readTimeout := s.maxDur(initialTimeout, 3*time.Second) readTimeout = s.maxDur(s.ReadTimeout, readTimeout) - heartBeatTimeout := s.minDur(s.HeartbeatTimeout, readTimeout/2) + maxHeartBeatTimeout := time.Duration(float64(readTimeout) * 0.8) + heartBeatTimeout := s.minDur(s.HeartbeatTimeout, maxHeartBeatTimeout) if heartBeatTimeout <= 0 { - heartBeatTimeout = readTimeout / 2 + heartBeatTimeout = maxHeartBeatTimeout } return Server{