private void OnModelCreated(object sender, ModelCreatedEventArgs e) { _declarationHelper.Clear(); // This occurs on a new channel. Therefore previous in-flight messages will never be confirmed but may have duplicate sequence numbers. // Hence we clear them out. These messages will still time out like normal. messagesInFlight.Clear(); }
private void OnModelCreated(object sender, ModelCreatedEventArgs args) { IModel channel = args.Channel; if (_queueProperties.ShouldDeclare) { _declarationHelper.Clear(); _declarationHelper.DeclareQueue(_queueProperties.Name, channel); } channel.BasicQos(0, _queueProperties.PrefetchLimit, false); var consumer = new EventingBasicConsumer(channel); consumer.Received += (ch, ea) => { var msg = Convert(ea, ((IBasicConsumer)ch).Model); queue.Enqueue(msg); }; channel.BasicConsume(_queueProperties.Name, false, consumer); }