private void Notify(MemberStatus @new, MemberStatus old) { if (@new == null && old == null) { return; //ignore } if (@new == null) { //notify left var left = new MemberLeftEvent(old.Host, old.Port, old.Kinds); Actor.EventStream.Publish(left); _members.Remove(old.Address); var endpointTerminated = new EndpointTerminatedEvent { Address = old.Address }; Actor.EventStream.Publish(endpointTerminated); return; } if (old == null) { //notify joined var joined = new MemberJoinedEvent(@new.Host, @new.Port, @new.Kinds); Actor.EventStream.Publish(joined); return; } if (@new.MemberId != old.MemberId) { var rejoined = new MemberRejoinedEvent(@new.Host, @new.Port, @new.Kinds); Actor.EventStream.Publish(rejoined); return; } if (old.Alive && [email protected]) { var unavailable = new MemberUnavailableEvent(@new.Host, @new.Port, @new.Kinds); Actor.EventStream.Publish(unavailable); return; } if (@new.Alive && !old.Alive) { var available = new MemberAvailableEvent(@new.Host, @new.Port, @new.Kinds); Actor.EventStream.Publish(available); } }
private void MemberUnavailable(MemberUnavailableEvent msg) { _logger.LogInformation("Member Unavailable {0}", msg.Address); }
private void MemberUnavailable(MemberUnavailableEvent msg) { _logger.LogInformation($"Kind {_kind} Member Unavailable {msg.Address}"); }