private Dictionary <string, object> GetQueueDeclareArguments(QueueDeclareParam param) { var arguments = new Dictionary <string, object>(); if (param.PerQueueMessageTtl.HasValue) { arguments.Add("x-message-ttl", param.PerQueueMessageTtl.Value); } if (param.Expires.HasValue) { arguments.Add("x-expires", param.Expires); } if (param.MaxPriority.HasValue) { arguments.Add("x-max-priority", param.MaxPriority.Value); } if (!string.IsNullOrEmpty(param.DeadLetterExchange)) { arguments.Add("x-dead-letter-exchange", param.DeadLetterExchange); } if (!string.IsNullOrEmpty(param.DeadLetterRoutingKey)) { arguments.Add("x-dead-letter-routing-key", param.DeadLetterRoutingKey); } if (param.MaxLength.HasValue) { arguments.Add("x-max-length", param.MaxLength.Value); } if (param.MaxLengthBytes.HasValue) { arguments.Add("x-max-length-bytes", param.MaxLengthBytes.Value); } return(arguments); }
private void LogQueueDeclare(QueueDeclareParam param, Dictionary <string, object> arguments) { var msgTemplate = "Declared Queue: '{0}', durable:{1}, exclusive:{2}, autoDelete:{3}, args:{4}"; var args = string.Join(", ", arguments.Select(kvp => string.Format("{0}={1}", kvp.Key, kvp.Value))); Logger.Debug(msgTemplate, param.Name, param.Durable, param.Exclusive, param.AutoDelete, args); }
private IQueue QueueDeclare(string queueName) { var param = new QueueDeclareParam(queueName); param.AutoDelete = subConfigure.AutoDelete; param.Expires = subConfigure.Expires; return(advancedBus.QueueDeclare(param)); }
private IQueue DeclareQueue(string queueName) { IQueue queue = null; if (!declaredQueues.TryGetValue(queueName, out queue)) { var param = new QueueDeclareParam(queueName); queue = advancedBus.QueueDeclare(param); declaredQueues.TryAdd(queueName, queue); } return(queue); }
public IQueue QueueDeclare(QueueDeclareParam param) { var name = param.Name; var queue = new Queue(name, param.Exclusive); var arguments = new Dictionary <string, object>(); if (param.Passive) { clientCommandDispatcher.Invoke(x => x.QueueDeclarePassive(name)); } else { arguments = GetQueueDeclareArguments(param); clientCommandDispatcher.Invoke( x => x.QueueDeclare(name, param.Durable, param.Exclusive, param.AutoDelete, arguments)); } LogQueueDeclare(param, arguments); return(queue); }
public async Task <IQueue> QueueDeclareAsync(QueueDeclareParam param) { var name = param.Name; var queue = new Queue(name, param.Exclusive); var arguments = new Dictionary <string, object>(); if (param.Passive) { await clientCommandDispatcher.InvokeAsync(x => x.QueueDeclarePassive(name)).ConfigureAwait(false); } else { arguments = GetQueueDeclareArguments(param); await clientCommandDispatcher.InvokeAsync( x => x.QueueDeclare(name, param.Durable, param.Exclusive, param.AutoDelete, arguments)) .ConfigureAwait(false); } LogQueueDeclare(param, arguments); return(queue); }