/// <summary> /// Start replay listeners /// </summary> public void StartReplay() { if (IsReplaying) { throw new BusConfigurationException("Attempted to replay the MicroserviceHost, but it is already replaying."); } Logger.LogInformation($"Starting replay with {ReplayListeners.Count()} replay listeners"); IsReplaying = true; foreach (MicroserviceReplayListener callback in ReplayListeners.Append(StartListener).Append(EndListener)) { if (callback == null) { continue; } Logger.LogInformation($"Registering replay queue {callback.Queue} with expressions: {string.Join(", ", callback.TopicExpressions)}"); IMessageReceiver receiver = Context.CreateMessageReceiver(callback.Queue, callback.TopicExpressions); receiver.StartReceivingMessages(); receiver.StartHandlingMessages(callback.Callback); ReplayMessageReceivers.Add(receiver); } }