Skip to content

Commit f59f000

Browse files
vitalie.glincajeremydmiller
authored andcommitted
Add ability to switch off Request/Reply wolverine's queue declaration for RMQ transport.
1 parent f28686a commit f59f000

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqTransport.cs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ public RabbitMqTransport() : base(ProtocolName, "Rabbit MQ")
5454

5555
public LightweightCache<string, RabbitMqQueue> Queues { get; }
5656

57+
internal bool DeclareRequestReplySystemQueue { get; set; } = true;
58+
5759
public void Dispose()
5860
{
5961
try
@@ -183,19 +185,22 @@ protected override RabbitMqEndpoint findEndpointByUri(Uri uri)
183185

184186
protected override void tryBuildSystemEndpoints(IWolverineRuntime runtime)
185187
{
186-
var queueName = $"wolverine.response.{runtime.DurabilitySettings.AssignedNodeNumber}";
187-
188-
var queue = new RabbitMqQueue(queueName, this, EndpointRole.System)
188+
if (DeclareRequestReplySystemQueue)
189189
{
190-
AutoDelete = true,
191-
IsDurable = false,
192-
IsListener = true,
193-
IsUsedForReplies = true,
194-
ListenerCount = 5,
195-
EndpointName = ResponseEndpointName
196-
};
190+
var queueName = $"wolverine.response.{runtime.DurabilitySettings.AssignedNodeNumber}";
197191

198-
Queues[queueName] = queue;
192+
var queue = new RabbitMqQueue(queueName, this, EndpointRole.System)
193+
{
194+
AutoDelete = true,
195+
IsDurable = false,
196+
IsListener = true,
197+
IsUsedForReplies = true,
198+
ListenerCount = 5,
199+
EndpointName = ResponseEndpointName
200+
};
201+
202+
Queues[queueName] = queue;
203+
}
199204

200205
// Have to do this early to get everything together for the dead letter queues
201206
foreach (var rabbitMqQueue in Queues)

src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqTransportExpression.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,17 @@ public RabbitMqTransportExpression DisableDeadLetterQueueing()
116116
return this;
117117
}
118118

119+
/// <summary>
120+
/// Disable Wolverine's automatic Request/Reply queue declaration for a specific node
121+
/// </summary>
122+
/// <returns></returns>
123+
public RabbitMqTransportExpression DisableSystemRequestReplyQueueDeclaration()
124+
{
125+
Transport.DeclareRequestReplySystemQueue = false;
126+
127+
return this;
128+
}
129+
119130
public class BindingExpression
120131
{
121132
private readonly string _exchangeName;

0 commit comments

Comments
 (0)