Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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>();
        }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 public void UseDeadLetterStrategy(IDeadLetterStrategy <T> deadLetterStrategy)
 {
     deadLetterStrategy.Require("deadLetterStrategy");
     configuration.DeadLetterStrategy = deadLetterStrategy;
 }