public ClusterLivenessProbe(LivenessStatus livenessStatus) { _livenessStatus = livenessStatus; Receive <LivenessStatus>(s => { _livenessStatus = s; foreach (var sub in _subscribers) { sub.Tell(s); } }); Receive <GetCurrentLiveness>(_ => Sender.Tell(_livenessStatus)); Receive <SubscribeToLiveness>(s => { _subscribers.Add(s.Subscriber); Context.Watch(s.Subscriber); s.Subscriber.Tell(_livenessStatus); }); Receive <UnsubscribeFromLiveness>(u => { _subscribers.Remove(u.Subscriber); Context.Unwatch(u.Subscriber); }); Receive <Terminated>(t => { _subscribers.Remove(t.ActorRef); }); }
public CustomProbe(LivenessStatus livenessStatus, ReadinessStatus readinessStatus) { _livenessStatus = livenessStatus; _readinessStatus = readinessStatus; Receive <GetCurrentLiveness>(_ => Sender.Tell(_livenessStatus)); Receive <GetCurrentReadiness>(_ => Sender.Tell(_readinessStatus)); }
private void HandleRecoveryStatus(RecoveryStatus status) { _log.Info("Received recovery status {0} from probe.", status); _journalLive = status.JournalRecovered; _snapshotStoreLive = status.SnapshotRecovered; _currentStatus = new LivenessStatus(_journalLive && _snapshotStoreLive, status.ToString()); PublishStatusUpdates(); }