static async Task Bind(ModelContext context, ExchangeToExchangeBinding binding) { RabbitMqLogMessages.BindToExchange(binding); await context.ExchangeBind(binding.Destination.ExchangeName, binding.Source.ExchangeName, binding.RoutingKey, binding.Arguments) .ConfigureAwait(false); }
async Task IConsumer <SetPrefetchCount> .Consume(ConsumeContext <SetPrefetchCount> context) { var prefetchCount = context.Message.PrefetchCount; RabbitMqLogMessages.PrefetchCount(prefetchCount); await _modelContext.BasicQos(0, prefetchCount, true).ConfigureAwait(false); await _filter.SetPrefetchCount(prefetchCount).ConfigureAwait(false); }
async Task IFilter <ModelContext> .Send(ModelContext context, IPipe <ModelContext> next) { RabbitMqLogMessages.PrefetchCount(_prefetchCount); await context.BasicQos(0, _prefetchCount, false).ConfigureAwait(false); using (new SetPrefetchCountConsumer(_managementPipe, context, this)) { await next.Send(context).ConfigureAwait(false); } }
async Task Declare(ModelContext context, Queue queue) { try { var ok = await context.QueueDeclare(queue.QueueName, queue.Durable, queue.Exclusive, queue.AutoDelete, queue.QueueArguments) .ConfigureAwait(false); RabbitMqLogMessages.DeclareQueue(queue, ok.ConsumerCount, ok.MessageCount); } catch (Exception exception) { LogContext.Error?.Log(exception, "Declare queue faulted: {Queue}", queue); throw; } }
Task Bind(ModelContext context, ExchangeToQueueBinding binding) { RabbitMqLogMessages.BindToQueue(binding); return(context.QueueBind(binding.Destination.QueueName, binding.Source.ExchangeName, binding.RoutingKey, binding.Arguments)); }
Task Declare(ModelContext context, Queue queue) { RabbitMqLogMessages.DeclareQueue(queue); return(context.QueueDeclare(queue.QueueName, queue.Durable, queue.Exclusive, queue.AutoDelete, queue.QueueArguments)); }
Task Declare(ModelContext context, Exchange exchange) { RabbitMqLogMessages.DeclareExchange(exchange); return(context.ExchangeDeclare(exchange.ExchangeName, exchange.ExchangeType, exchange.Durable, exchange.AutoDelete, exchange.ExchangeArguments)); }