Fix bug with queue names
This commit is contained in:
		
							parent
							
								
									09a53f0137
								
							
						
					
					
						commit
						70f50a0fce
					
				| @ -31,6 +31,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ | |||||||
|             = new List<Type>(); |             = new List<Type>(); | ||||||
| 
 | 
 | ||||||
|         private IModel _consumerChannel; |         private IModel _consumerChannel; | ||||||
|  |         private string _queueName; | ||||||
| 
 | 
 | ||||||
|         public EventBusRabbitMQ(IRabbitMQPersisterConnection persisterConnection, ILogger<EventBusRabbitMQ> logger) |         public EventBusRabbitMQ(IRabbitMQPersisterConnection persisterConnection, ILogger<EventBusRabbitMQ> logger) | ||||||
|         { |         { | ||||||
| @ -93,7 +94,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ | |||||||
| 
 | 
 | ||||||
|                 using (var channel = _persisterConnection.CreateModel()) |                 using (var channel = _persisterConnection.CreateModel()) | ||||||
|                 { |                 { | ||||||
|                     channel.QueueBind(queue: channel.QueueDeclare().QueueName, |                     channel.QueueBind(queue: _queueName, | ||||||
|                                       exchange: BROKER_NAME, |                                       exchange: BROKER_NAME, | ||||||
|                                       routingKey: eventName); |                                       routingKey: eventName); | ||||||
| 
 | 
 | ||||||
| @ -131,9 +132,16 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ | |||||||
| 
 | 
 | ||||||
|                         using (var channel = _persisterConnection.CreateModel()) |                         using (var channel = _persisterConnection.CreateModel()) | ||||||
|                         { |                         { | ||||||
|                             channel.QueueUnbind(queue: channel.QueueDeclare().QueueName, |                             channel.QueueUnbind(queue: _queueName, | ||||||
|                                 exchange: BROKER_NAME, |                                 exchange: BROKER_NAME, | ||||||
|                                 routingKey: eventName); |                                 routingKey: eventName); | ||||||
|  | 
 | ||||||
|  |                             if (_handlers.Keys.Count == 0) | ||||||
|  |                             { | ||||||
|  |                                 _queueName = string.Empty; | ||||||
|  | 
 | ||||||
|  |                                 _consumerChannel.Close(); | ||||||
|  |                             } | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| @ -142,7 +150,11 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ | |||||||
| 
 | 
 | ||||||
|         public void Dispose() |         public void Dispose() | ||||||
|         { |         { | ||||||
|             _consumerChannel.Dispose(); |             if (_consumerChannel != null) | ||||||
|  |             { | ||||||
|  |                 _consumerChannel.Dispose(); | ||||||
|  |             } | ||||||
|  |              | ||||||
|             _handlers.Clear(); |             _handlers.Clear(); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -158,6 +170,8 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ | |||||||
|             channel.ExchangeDeclare(exchange: BROKER_NAME, |             channel.ExchangeDeclare(exchange: BROKER_NAME, | ||||||
|                                  type: "direct"); |                                  type: "direct"); | ||||||
| 
 | 
 | ||||||
|  |             _queueName = channel.QueueDeclare().QueueName; | ||||||
|  | 
 | ||||||
|             var consumer = new EventingBasicConsumer(channel); |             var consumer = new EventingBasicConsumer(channel); | ||||||
|             consumer.Received += async (model, ea) => |             consumer.Received += async (model, ea) => | ||||||
|             { |             { | ||||||
| @ -167,16 +181,10 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ | |||||||
|                 await ProcessEvent(eventName, message); |                 await ProcessEvent(eventName, message); | ||||||
|             }; |             }; | ||||||
| 
 | 
 | ||||||
|             channel.BasicConsume(queue: channel.QueueDeclare().QueueName, |             channel.BasicConsume(queue: _queueName, | ||||||
|                                  noAck: true, |                                  noAck: true, | ||||||
|                                  consumer: consumer); |                                  consumer: consumer); | ||||||
| 
 | 
 | ||||||
|             channel.ModelShutdown += (sender, ea) => |  | ||||||
|             { |  | ||||||
|                 _consumerChannel.Dispose(); |  | ||||||
|                 _consumerChannel = CreateConsumerChannel(); |  | ||||||
|             }; |  | ||||||
| 
 |  | ||||||
|             channel.CallbackException += (sender, ea) => |             channel.CallbackException += (sender, ea) => | ||||||
|             { |             { | ||||||
|                 _consumerChannel.Dispose(); |                 _consumerChannel.Dispose(); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user