Skip to content

Commit cb15dbf

Browse files
committed
Add decay factor for reconnecting
1 parent ec3f53a commit cb15dbf

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

conn.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,18 @@ func (c *Conn) fail() {
107107
}
108108

109109
func (c *Conn) reconnect() {
110+
sleepTime := Config.ReconnectTime
110111
for {
111112
c.mutex.Lock()
112113
if err := c.connect(c.address, 0); err == nil {
113114
c.mutex.Unlock()
114115
break
115116
}
116117
c.mutex.Unlock()
117-
time.Sleep(time.Duration(Config.ReconnectTime) * time.Second)
118+
time.Sleep(time.Duration(sleepTime) * time.Second)
119+
if sleepTime < 30 {
120+
sleepTime += 2
121+
}
118122
}
119123

120124
}

number.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ type VarInt int64
4444

4545
// Bytes converts a VarInt to a byte array
4646
func (x VarInt) Bytes() []byte {
47-
b := []byte{0, 0, 0, 0, 0, 0, 0, 0, 0}
47+
b := []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0} // 9.14 bytes are needed
4848
ux := uint64(x) << 1
4949
if x < 0 {
5050
ux = ^ux

sentinel.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,16 @@ func (s *Sentinel) reconnect() {
213213
s.subs.Close()
214214
s.subConn.Close()
215215
s.conn.Close()
216+
sleepTime := Config.ReconnectTime
216217
for {
217218
err := s.connect()
218219
if err == nil {
219220
break
220221
}
221-
time.Sleep(time.Duration(Config.ReconnectTime) * time.Second)
222+
time.Sleep(time.Duration(sleepTime) * time.Second)
223+
if sleepTime < 30 {
224+
sleepTime += 2
225+
}
222226
}
223227
}
224228

@@ -267,7 +271,7 @@ func (s *Sentinel) getInstanceAddress(name string) string {
267271
for {
268272
rep, err := NewCommand("SENTINEL", "get-master-addr-by-name", name).Run(s.conn)
269273
if err != nil {
270-
time.Sleep(time.Duration(Config.ReconnectTime) * time.Second)
274+
time.Sleep(2 * time.Second)
271275
continue
272276
}
273277
if !rep.IsArray() {

0 commit comments

Comments
 (0)