예제 #1
0
 /// <summary>
 /// Called when [message].
 /// </summary>
 /// <param name="messageEnvelope">The message envelope.</param>
 /// <param name="specificSubscribers">The specific subscribers.</param>
 void OnMessage(IMessageEnvelope messageEnvelope, IList <string> specificSubscribers)
 {
     _logger.LogBusReceived(messageEnvelope, "");
     try
     {
         var session       = new SessionContext();
         var OnMessageCall = new OnMessageAsync(_subscriberManager.OnMessage);
         OnMessageCall.BeginInvoke(messageEnvelope, specificSubscribers, null, this);
     }
     catch (System.Exception exception)
     {
         _logger.LogBusReceivedFailure(messageEnvelope, exception.Message, exception);
     }
 }
예제 #2
0
        public BasicConsumer(string validQueueName, IModel model, CancellationToken?cancellationToken = null, ILogger consumerErrorLogger = null) : base(validQueueName, model)
        {
            //start consumimg

            Task.Run(() =>
            {
                base.HandleMultipleMessagesAsync(async msgs =>
                {
                    if (OnMessagesAsync != null)
                    {
                        await OnMessagesAsync?.Invoke((BasicMessage[])msgs);
                    }
                });

                base.HandleMultipleMessages(msgs =>
                {
                    if (OnMessages != null)
                    {
                        OnMessages?.Invoke((BasicMessage[])msgs);
                    }
                });

                base.HandleMessageAsync(async msg =>
                {
                    if (OnMessageAsync != null)
                    {
                        await OnMessageAsync?.Invoke((BasicMessage)msg);
                    }
                });


                base.HandleMessage(msg =>
                {
                    if (OnMessage != null)
                    {
                        OnMessage?.Invoke((BasicMessage)msg);
                    }
                });

                base.HandleMessageError((ex, msg) =>
                {
                    consumerErrorLogger?.LogError(ex, $"{ex.Message}\r\nQueueName:{validQueueName}", $"MaxFetchCount:{base.MaxFetchCount}", msg?.ToJsonString());
                });
            });
        }