public virtual BasicGetResult GetMessage(string queueName, bool noAck) { try { if (!Queues.Contains(queueName)) { Channel.RegisterQueueByName(queueName); Queues = new HashSet <string>(Queues) { queueName }; } var basicMsg = Channel.BasicGet(queueName, noAck: noAck); GetMessageFilter?.Invoke(queueName, basicMsg); return(basicMsg); } catch (OperationInterruptedException ex) { if (ex.Is404()) { Channel.RegisterQueueByName(queueName); return(Channel.BasicGet(queueName, noAck: noAck)); } throw; } }