public string BasicConsume(string queue, bool noAck, string consumerTag, bool noLocal, bool exclusive, IDictionary <string, object> arguments, IBasicConsumer consumer)
        {
            Queue queueInstance;

            _server.Queues.TryGetValue(queue, out queueInstance);

            if (queueInstance != null)
            {
                Func <string, IBasicConsumer, IBasicConsumer> updateFunction = (s, basicConsumer) => basicConsumer;
                _consumers.AddOrUpdate(consumerTag, consumer, updateFunction);

                if (consumer is IAsyncBasicConsumer asyncConsumer)
                {
                    asyncConsumer.HandleBasicConsumeOk(consumerTag);
                }
                else
                {
                    consumer.HandleBasicConsumeOk(consumerTag);
                }

                NotifyConsumerOfExistingMessages(consumerTag, consumer, queueInstance);
                NotifyConsumerWhenMessagesAreReceived(consumerTag, consumer, queueInstance);
            }

            return(consumerTag);
        }
Exemple #2
0
        public string BasicConsume(string queue, bool noAck, string consumerTag, IBasicConsumer consumer)
        {
            if (!connection.Queues.ContainsKey(queue))
            {
                throw new InMemoryClientException(string.Format("Queue '{0}' does not exist", queue));
            }

            consumer.HandleBasicConsumeOk(consumerTag);
            connection.Queues[queue].AddConsumer(noAck, consumerTag, consumer);

            return("");
        }
 protected override async Task Execute(ModelBase model, IBasicConsumer consumer)
 {
     try
     {
         await consumer.HandleBasicConsumeOk(consumerTag).ConfigureAwait(false);
     }
     catch (Exception e)
     {
         var details = new Dictionary <string, object>()
         {
             { "consumer", consumer },
             { "context", "HandleBasicConsumeOk" }
         };
         await model.OnCallbackException(CallbackExceptionEventArgs.Build(e, details));
     }
 }
Exemple #4
0
 public void HandleBasicConsumeOk(IBasicConsumer consumer,
                                  string consumerTag)
 {
     UnlessShuttingDown(() =>
     {
         try
         {
             consumer.HandleBasicConsumeOk(consumerTag);
         }
         catch (Exception e)
         {
             var details = new Dictionary <string, object>()
             {
                 { "consumer", consumer },
                 { "context", "HandleBasicConsumeOk" }
             };
             model.OnCallbackException(CallbackExceptionEventArgs.Build(e, details));
         }
     });
 }
 public void HandleBasicConsumeOk(IBasicConsumer consumer,
                                  string consumerTag)
 {
     UnlessShuttingDown(() =>
     {
         try
         {
             consumer.HandleBasicConsumeOk(consumerTag);
         }
         catch (Exception e)
         {
             var details = new Dictionary<string, object>()
             {
                 {"consumer", consumer},
                 {"context",  "HandleBasicConsumeOk"}
             };
             model.OnCallbackException(CallbackExceptionEventArgs.Build(e, details));
         }
     });
 }
        public string BasicConsume(string queue, bool noAck, string consumerTag, IBasicConsumer consumer)
        {
            if (!connection.Queues.ContainsKey(queue))
            {
                throw new InMemoryClientException(string.Format("Queue '{0}' does not exist", queue));
            }

            consumer.HandleBasicConsumeOk(consumerTag);
            connection.Queues[queue].AddConsumer(noAck, consumerTag, consumer);

            return "";
        }