예제 #1
0
 public void Publish(object message, MessageProperties messageProperties)
 {
     try
     {
         if (_connection != null && _connection.IsOpen)
         {
             Flush();
             PublishMessage(message, messageProperties, null);
         }
         else
         {
             lock (_queueLock)
                 _queueStrategy.Enqueue(new MessageInfo {
                     Message = message, MessageProperties = messageProperties
                 });
         }
     }
     catch (Exception e)
     {
         Logger.Current.Write("An exception occurred while publishing: " + e.Message, TraceEventType.Error);
         throw;
     }
 }
예제 #2
0
 public void Publish(object message, string routingKey, IDictionary headers)
 {
     try
     {
         if (_connection != null && _connection.IsOpen)
         {
             Flush();
             PublishMessage(message, routingKey, headers, null);
         }
         else
         {
             lock (_queueLock)
                 _queueStrategy.Enqueue(new MessageInfo {
                     Message = message, RoutingKey = routingKey, Headers = headers
                 });
         }
     }
     catch (Exception e)
     {
         Logger.Current.Write("An exception occurred while publishing: " + e.Message, TraceEventType.Error);
         throw;
     }
 }