Skip to content

Commit 1f865a5

Browse files
committed
When RabbitMQ fails to publish a message to an exchange, and it isn't a return, signal a connection error so that it retries
1 parent df4bd59 commit 1f865a5

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

src/Transports/MassTransit.RabbitMqTransport/RabbitMqTransport/RabbitMqChannelContext.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ async Task WaitAck()
5454
{
5555
throw new MessageReturnedException("The message was returned by RabbitMQ", exception);
5656
}
57+
catch (PublishException exception)
58+
{
59+
throw new RabbitMqConnectionException("BasicPublishAsync failed", exception);
60+
}
5761
}
5862

5963
return awaitAck ? WaitAck() : Task.CompletedTask;

src/Transports/MassTransit.RabbitMqTransport/RabbitMqTransport/RabbitMqSendTransportContext.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,12 @@ static void SetHeaders(IDictionary<string, object> dictionary, SendHeaders heade
185185
{
186186
if (header.Value == null)
187187
{
188-
if (dictionary.ContainsKey(header.Key))
189-
dictionary.Remove(header.Key);
188+
dictionary.Remove(header.Key);
190189

191190
continue;
192191
}
193192

194-
if (header.Key == RabbitMqHeaders.Exchange
195-
|| header.Key == RabbitMqHeaders.RoutingKey
196-
|| header.Key == RabbitMqHeaders.DeliveryTag
197-
|| header.Key == RabbitMqHeaders.ConsumerTag)
193+
if (header.Key is RabbitMqHeaders.Exchange or RabbitMqHeaders.RoutingKey or RabbitMqHeaders.DeliveryTag or RabbitMqHeaders.ConsumerTag)
198194
continue;
199195

200196
if (dictionary.ContainsKey(header.Key))

0 commit comments

Comments
 (0)