Пример #1
0
        protected void BindQueue(IModel channel, IAmqpEndpointConfiguration endpointConfiguration)
        {
            Action<IModel, IAmqpEndpointConfiguration, string> setup = 
                (x, y, z) => x.QueueBind(
                            y.QueueName,
                            y.ExchangeName,
                            z,
                            y.NoWait,
                            y.Arguments);

            if(endpointConfiguration.RoutingKeys.Count == 0)
            {
                setup(channel, endpointConfiguration, "");
            }
            else
            {
                endpointConfiguration.RoutingKeys.ForEach(x => setup(channel, endpointConfiguration, x));
            }
        }
Пример #2
0
 public static IEndPoint CreateFromAmqpEndpoint(IAmqpEndpointConfiguration endpoint)
 {
     return new BusEndPoint() {_configuration = endpoint};
 }
Пример #3
0
 public BusEndPoint()
 {
     _configuration = new AmqpEndpointConfiguration();
 }
Пример #4
0
 protected void BuildExchange(IModel channel, IAmqpEndpointConfiguration endpointConfiguration)
 {
     channel.ExchangeDeclare(
         endpointConfiguration.ExchangeName,
         endpointConfiguration.ExchangeTypeName,
         endpointConfiguration.Passive,
         endpointConfiguration.Durable,
         endpointConfiguration.AutoDelete,
         endpointConfiguration.Internal,
         endpointConfiguration.NoWait,
         endpointConfiguration.Arguments);
 }
Пример #5
0
 protected void ForceBindQueue(IModel channel, IAmqpEndpointConfiguration endpointConfiguration)
 {
     try
     {
         BindQueue(channel, endpointConfiguration);
     }
     catch (RabbitMQ.Client.Exceptions.OperationInterruptedException e)
     {
         channel = GetModel();
         channel.ExchangeDelete(endpointConfiguration.ExchangeName, false, true);
         channel = GetModel();
         BuildExchange(channel, endpointConfiguration);
         BuildQueue(channel, endpointConfiguration);
         BindQueue(channel, endpointConfiguration);
     }
 }
Пример #6
0
 protected void BuildQueue(IModel channel, IAmqpEndpointConfiguration endpointConfiguration)
 {
     channel.QueueDeclare(
         endpointConfiguration.QueueName,
         endpointConfiguration.Passive,
         endpointConfiguration.Durable,
         endpointConfiguration.Exclusive,
         endpointConfiguration.AutoDelete,
         endpointConfiguration.NoWait,
         endpointConfiguration.Arguments);
 }