/// <summary> /// Finds listeners that are not running and replaces them with new, running ones /// </summary> private void ListenerHealthCheck() { while (true) { try { if (ShutdownEvent.IsSet) { return; } _actorManager.ReplaceInactiveListeners(_listenerConfigurations, _dependencyResolver); if (ListenerSubscriptionEnded.IsSet) { // If our composer's subscription to listener reports has fallen over, stand it back up SubscribeToListenerReports(); } // Dumb minute long sleep Thread.Sleep(60 * 1000); } catch (Exception ex) { OnErrorAction(ex); } } }