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; } }
public static void Publish <TRequestMessage, TReplyMessage>(this IBus bus, TRequestMessage requestMessage, MessageProperties messageProperties, Action <IMessageContext <TReplyMessage> > action) { bus.Publish(requestMessage, messageProperties, action, TimeSpan.MinValue); }
public void Publish <TRequestMessage, TReplyMessage>(TRequestMessage message, MessageProperties messageProperties, Action <IMessageContext <TReplyMessage> > replyAction, TimeSpan timeout) { try { PublishMessage(message, messageProperties, replyAction, timeout); } catch (Exception e) { Logger.Current.Write("An exception occurred while publishing: " + e.Message, TraceEventType.Error); } }
void PublishMessage <TRequestMessage, TReplyMessage>(TRequestMessage message, MessageProperties messageProperties, Action <IMessageContext <TReplyMessage> > replyAction, TimeSpan timeout) { PublishMessage(message, messageProperties, (p, pi) => { IConsumeInfo replyInfo = pi.ReplyInfo; string queueName = Guid.NewGuid().ToString(); p.ReplyTo = new PublicationAddress(replyInfo.ExchangeType, "", queueName).ToString(); p.CorrelationId = Guid.NewGuid().ToString(); ISerializationStrategy serializationStrategy = pi.SerializationStrategy ?? _defaultSerializationStrategy; IConsumeInfo consumeInfo = CloneConsumeInfo(replyInfo); consumeInfo.ExchangeName = ""; consumeInfo.QueueName = queueName; consumeInfo.IsQueueExclusive = true; new Subscription <TReplyMessage>(_connection, _defaultDeadLetterConfiguration, serializationStrategy, consumeInfo, queueName /* routing key */, replyAction, null, x => { }, this, SubscriptionType.RemoteProcedure, timeout).Start(); }); }
public void Subscribe <TMessage>(Action <IMessageContext <TMessage> > action, MessageProperties messageProperties) { SubscribeMessage(action, messageProperties); }
protected bool Equals(MessageProperties other) { return(Expiration.Equals(other.Expiration) && string.Equals(RoutingKey, other.RoutingKey) && Equals(Headers, other.Headers)); }
public void Publish <TMessage>(TMessage message, MessageProperties messageProperties) { _messagePublisher.Publish(message, messageProperties); }
public void Unsubscribe <TMessage>(MessageProperties messageProperties) { UnsubscribeMessage <TMessage>(messageProperties); }
void SubscribeMessage <TMessage>(Action <IMessageContext <TMessage> > action, MessageProperties messageProperties) { IConsumeInfo routeInfo = _configurationModel.ConsumeRouteConfiguration.GetRouteInfo(typeof(TMessage)); var subscription = new Subscription <TMessage>(_connection, _configurationModel.DefaultDeadLetterConfiguration, _configurationModel.DefaultSerializationStrategy, routeInfo, messageProperties.RoutingKey, action, messageProperties.Headers, _defaultErrorCallback, _messagePublisher, SubscriptionType.Subscription, TimeSpan.MinValue); _subscriptions.Add(new SubscriptionKey(typeof(TMessage), messageProperties), subscription); subscription.Start(); }
void PublishMessage <TRequestMessage, TReplyMessage>(TRequestMessage message, MessageProperties messageProperties, Action <IMessageContext <TReplyMessage> > replyAction, TimeSpan timeout) { _messagePublisher.Publish(message, messageProperties, replyAction, timeout); }
public SubscriptionKey(Type messageType, MessageProperties messageProperties) { _messageType = messageType; _messageProperties = messageProperties; }
protected bool Equals(MessageProperties other) { return Expiration.Equals(other.Expiration) && string.Equals(RoutingKey, other.RoutingKey) && Equals(Headers, other.Headers); }