public Task FuturePublishAsync <T>(DateTime futurePublishDate, string cancellationKey, T message) where T : class { Preconditions.CheckNotNull(message, "message"); var messageType = typeof(ScheduleMe); return(publishExchangeDeclareStrategy.DeclareExchangeAsync(advancedBus, messageType, ExchangeType.Topic).Then(exchange => { var typeName = typeNameSerializer.Serialize(typeof(T)); var messageBody = serializer.MessageToBytes(message); var easyNetQMessage = new Message <ScheduleMe>(new ScheduleMe { WakeTime = futurePublishDate, BindingKey = typeName, CancellationKey = cancellationKey, InnerMessage = messageBody }) { Properties = { DeliveryMode = (byte)(messageDeliveryModeStrategy.IsPersistent(messageType) ? 2 : 1) } }; return advancedBus.PublishAsync(exchange, conventions.TopicNamingConvention(messageType), false, false, easyNetQMessage); })); }
protected virtual void RequestPublish <TRequest>(TRequest request, string routingKey, string returnQueueName, Guid correlationId) where TRequest : class { var exchange = publishExchangeDeclareStrategy.DeclareExchange(advancedBus, conventions.RpcExchangeNamingConvention(), ExchangeType.Direct); var requestType = typeof(TRequest); var requestMessage = new Message <TRequest>(request); requestMessage.Properties.ReplyTo = returnQueueName; requestMessage.Properties.CorrelationId = correlationId.ToString(); requestMessage.Properties.Expiration = (timeoutStrategy.GetTimeoutSeconds(requestType) * 1000).ToString(); requestMessage.Properties.DeliveryMode = (byte)(messageDeliveryModeStrategy.IsPersistent(requestType) ? 2 : 1); advancedBus.Publish(exchange, routingKey, false, false, requestMessage); }
public virtual Task PublishAsync <T>(T message, string topic) where T : class { Preconditions.CheckNotNull(message, "message"); Preconditions.CheckNotNull(topic, "topic"); var messageType = typeof(T); return(publishExchangeDeclareStrategy.DeclareExchangeAsync(advancedBus, messageType, ExchangeType.Topic).Then(exchange => { var easyNetQMessage = new Message <T>(message) { Properties = { DeliveryMode = (byte)(messageDeliveryModeStrategy.IsPersistent(messageType) ? 2 : 1) } }; return advancedBus.PublishAsync(exchange, topic, false, false, easyNetQMessage); })); }