REDESIGNED MP2 FOR MP3
This commit is contained in:
1 parent
0e75fdc050
commit
a666eae508
1 file changed
+27
-1
+27
-1
@@ -245,7 +245,33 @@ func (m *MembershipService) handle_failure_detection(ctx context.Context, socket
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case <-ticker.C:
|
||||
// TODO: Implement failure detection logic
|
||||
m.mutex.Lock()
|
||||
now := time.Now()
|
||||
|
||||
for id, info := range m.members_list {
|
||||
// Don't check ourselves or already failed nodes
|
||||
if id == m.self_id || info.State == "down" {
|
||||
continue
|
||||
}
|
||||
|
||||
if info.LocalLastSeen == nil {
|
||||
info.LocalLastSeen = &now
|
||||
m.members_list[id] = info
|
||||
continue
|
||||
}
|
||||
|
||||
// No heartbeat advancement for 2.5 seconds
|
||||
if now.Sub(*info.LocalLastSeen) > 2500*time.Millisecond {
|
||||
info.State = "down"
|
||||
info.LocalFailedSince = &now
|
||||
|
||||
m.members_list[id] = info
|
||||
|
||||
logger.Warn("Member marked DOWN", "member", id)
|
||||
}
|
||||
}
|
||||
|
||||
m.mutex.Unlock()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user