From 85e6fa67f72742fa5289415394e9ff9b1804a5a6 Mon Sep 17 00:00:00 2001 From: Antonia Elek Date: Thu, 16 Jan 2025 16:36:14 +0100 Subject: [PATCH 1/3] Added dlx parameter. --- src/Seq.Input.RabbitMQ/RabbitMQInput.cs | 9 ++++++++- src/Seq.Input.RabbitMQ/RabbitMQListener.cs | 23 +++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/Seq.Input.RabbitMQ/RabbitMQInput.cs b/src/Seq.Input.RabbitMQ/RabbitMQInput.cs index edc6555..253e408 100644 --- a/src/Seq.Input.RabbitMQ/RabbitMQInput.cs +++ b/src/Seq.Input.RabbitMQ/RabbitMQInput.cs @@ -80,6 +80,12 @@ public class RabbitMQInput : SeqApp, IPublishJson, IDisposable HelpText = "Whether or not messages should be auto-acknowledged. The default is true.")] public bool IsReceiveAutoAck { get; set; } = true; + [SeqAppSetting( + DisplayName = "Dead Letter Exchange", + IsOptional = true, + HelpText = "Name of dead letter exchange associated with this queue.")] + public string Dlx { get; set; } = "guest"; + public void Start(TextWriter inputWriter) { var sync = new object(); @@ -111,7 +117,8 @@ void Receive(ReadOnlyMemory body) IsQueueDurable, IsQueueAutoDelete, IsQueueExclusive, - IsReceiveAutoAck); + IsReceiveAutoAck, + Dlx); } public void Stop() diff --git a/src/Seq.Input.RabbitMQ/RabbitMQListener.cs b/src/Seq.Input.RabbitMQ/RabbitMQListener.cs index 30ed239..1006e66 100644 --- a/src/Seq.Input.RabbitMQ/RabbitMQListener.cs +++ b/src/Seq.Input.RabbitMQ/RabbitMQListener.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Net.Security; using RabbitMQ.Client; using RabbitMQ.Client.Events; @@ -10,19 +11,19 @@ class RabbitMQListener : IDisposable readonly IConnection _connection; readonly IModel _channel; - public RabbitMQListener( - Action> receive, + public RabbitMQListener(Action> receive, string rabbitMQHost, string rabbitMQVHost, - int rabbitMQPort, - string rabbitMQUser, + int rabbitMQPort, + string rabbitMQUser, string rabbitMQPassword, - string rabbitMQQueue, + string rabbitMQQueue, bool isSsl, - bool isQueueDurable, - bool isQueueAutoDelete, + bool isQueueDurable, + bool isQueueAutoDelete, bool isQueueExclusive, - bool isReceiveAutoAck) + bool isReceiveAutoAck, + string dlx) { var factory = new ConnectionFactory { @@ -40,12 +41,16 @@ public RabbitMQListener( _connection = factory.CreateConnection(); _channel = _connection.CreateModel(); + var arguments = string.IsNullOrWhiteSpace(dlx) + ? null + : new Dictionary { {"x-dead-letter-exchange", dlx} }; + _channel.QueueDeclare( rabbitMQQueue, durable: isQueueDurable, exclusive: isQueueExclusive, autoDelete: isQueueAutoDelete, - arguments: null); + arguments: arguments); var consumer = new EventingBasicConsumer(_channel); consumer.Received += (model, ea) => receive(ea.Body); From 6822068ac48b949bd0f656accda5a3e22f883881 Mon Sep 17 00:00:00 2001 From: Antonia Elek Date: Tue, 28 Jan 2025 11:46:32 +0100 Subject: [PATCH 2/3] Update src/Seq.Input.RabbitMQ/RabbitMQInput.cs Co-authored-by: Ashley Mannix --- src/Seq.Input.RabbitMQ/RabbitMQInput.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Seq.Input.RabbitMQ/RabbitMQInput.cs b/src/Seq.Input.RabbitMQ/RabbitMQInput.cs index 253e408..c3e6ea0 100644 --- a/src/Seq.Input.RabbitMQ/RabbitMQInput.cs +++ b/src/Seq.Input.RabbitMQ/RabbitMQInput.cs @@ -83,7 +83,7 @@ public class RabbitMQInput : SeqApp, IPublishJson, IDisposable [SeqAppSetting( DisplayName = "Dead Letter Exchange", IsOptional = true, - HelpText = "Name of dead letter exchange associated with this queue.")] + HelpText = "The name of the dead letter exchange associated with this queue. If specified, the exchange will be used when declaring the queue, otherwise no dead lettering will be configured.")] public string Dlx { get; set; } = "guest"; public void Start(TextWriter inputWriter) From ca6425bef3914566636bcb30930b056323cbcd1b Mon Sep 17 00:00:00 2001 From: Antonia Elek Date: Thu, 30 Jan 2025 16:41:08 +0100 Subject: [PATCH 3/3] Remove default value for Dlx parameter. --- src/Seq.Input.RabbitMQ/RabbitMQInput.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Seq.Input.RabbitMQ/RabbitMQInput.cs b/src/Seq.Input.RabbitMQ/RabbitMQInput.cs index c3e6ea0..cd41e8f 100644 --- a/src/Seq.Input.RabbitMQ/RabbitMQInput.cs +++ b/src/Seq.Input.RabbitMQ/RabbitMQInput.cs @@ -84,7 +84,7 @@ public class RabbitMQInput : SeqApp, IPublishJson, IDisposable DisplayName = "Dead Letter Exchange", IsOptional = true, HelpText = "The name of the dead letter exchange associated with this queue. If specified, the exchange will be used when declaring the queue, otherwise no dead lettering will be configured.")] - public string Dlx { get; set; } = "guest"; + public string Dlx { get; set; } public void Start(TextWriter inputWriter) {