public ConsumerContext(IConnection connection, IConsumeInfo consumeInfo, ISerializationStrategy defaultSerializationStrategy, IDeadLetterStrategy deadLetterStrategy, IMessagePublisher messagePublisher) { _consumeInfo = consumeInfo; _defaultSerializationStrategy = defaultSerializationStrategy; _deadLetterStrategy = deadLetterStrategy; _messagePublisher = messagePublisher; _channel = connection.CreateModel(); Logger.Current.Write(string.Format("Declaring exchange:\'{0}\' durable:{1} auto-delete:{2}", consumeInfo.ExchangeName, consumeInfo.IsExchangeDurable.ToString(CultureInfo.InvariantCulture), consumeInfo.IsExchangeAutoDelete.ToString(CultureInfo.InvariantCulture)), TraceEventType.Information); _channel.ExchangeDeclare(consumeInfo.ExchangeName, consumeInfo.ExchangeType, consumeInfo.IsExchangeDurable, consumeInfo.IsExchangeAutoDelete, null); Logger.Current.Write(string.Format("Declaring queue:\'{0}\' durable:{1} auto-delete:{2}", consumeInfo.QueueName, consumeInfo.IsQueueDurable.ToString(CultureInfo.InvariantCulture), consumeInfo.IsQueueAutoDelete.ToString(CultureInfo.InvariantCulture)), TraceEventType.Information); _channel.QueueDeclare(consumeInfo.QueueName, consumeInfo.IsQueueDurable, consumeInfo.Exclusive, consumeInfo.IsQueueAutoDelete, null); Logger.Current.Write(string.Format("Binding queue \'{0}\' to exchange \'{1}\'", consumeInfo.QueueName, consumeInfo.ExchangeName), TraceEventType.Information); _channel.QueueBind(consumeInfo.QueueName, consumeInfo.ExchangeName, consumeInfo.DefaultRoutingKey); }
public SubscriptionWorker(IDependencyResolver dependencyResolver) { this.dependencyResolver = dependencyResolver; cancellationTokenSource = new CancellationTokenSource(); defaultDeadLetterStrategy = dependencyResolver.Get <IDeadLetterStrategy <MessageEnvelope> >(); defaultSubscriptionConfiguration = dependencyResolver.Get <ISubscriptionConfiguration>(); messageHandlers = new Dictionary <Type, List <Func <IMessageContext <MessageEnvelope>, bool> > >(); subscriberChannels = new List <ISubscriberChannel <MessageEnvelope> >(); typeTokenProviders = dependencyResolver.GetAll <ITypeTokenProvider>().ToList(); typeTokens = new Dictionary <string, Type>(); }
public MessageContext(IDeadLetterStrategy deadLetterStrategy, TMessage message, IConsumeInfo consumeInfo, IModel channel, ulong deliveryTag, bool redelivered, string exchange, string routingKey, IBasicProperties basicProperties, byte[] body, IMessagePublisher messagePublisher) { _deadLetterStrategy = deadLetterStrategy; _consumeInfo = consumeInfo; _channel = channel; Id = deliveryTag; Redelivered = redelivered; Exchange = exchange; RoutingKey = routingKey; _basicProperties = basicProperties; _body = body; _messagePublisher = messagePublisher; Message = message; }
public Subscription(IConnection connection, IDeadLetterStrategy deadLetterStrategy, ISerializationStrategy defaultSerializationStrategy, IConsumeInfo consumeInfo, string routingKey, Action <IMessageContext <TMessage> > callback, IDictionary exchangeArguments, Action <IErrorContext> defaultErrorCallback, IMessagePublisher messagePublisher, SubscriptionType subscriptionType, TimeSpan callbackTimeout) { _connection = connection; _deadLetterStrategy = deadLetterStrategy; _defaultSerializationStrategy = defaultSerializationStrategy; _consumeInfo = consumeInfo; _routingKey = routingKey ?? _consumeInfo.DefaultRoutingKey; _callback = callback; _defaultErrorCallback = defaultErrorCallback; _messagePublisher = messagePublisher; _subscriptionType = subscriptionType; _callbackTimeout = callbackTimeout; _exchangeArguments = exchangeArguments; }
public void UseDeadLetterStrategy(IDeadLetterStrategy <T> deadLetterStrategy) { deadLetterStrategy.Require("deadLetterStrategy"); configuration.DeadLetterStrategy = deadLetterStrategy; }