diff --git a/Rebus.RabbitMq/Config/RabbitMqQueueOptionsBuilder.cs b/Rebus.RabbitMq/Config/RabbitMqQueueOptionsBuilder.cs
index 8873daf..5ea250c 100644
--- a/Rebus.RabbitMq/Config/RabbitMqQueueOptionsBuilder.cs
+++ b/Rebus.RabbitMq/Config/RabbitMqQueueOptionsBuilder.cs
@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
namespace Rebus.Config
{
@@ -26,10 +27,20 @@ public RabbitMqQueueOptionsBuilder SetExclusive(bool exclusive)
}
///
- /// Set auto delete
+ /// Set auto delete, when last consumer disconnects
+ /// Whether queue should be deleted
+ /// Time to live (in milliseconds) after last subscriber disconnects
///
- public RabbitMqQueueOptionsBuilder SetAutoDelete(bool autoDelete)
+ public RabbitMqQueueOptionsBuilder SetAutoDelete(bool autoDelete, long ttlInMs = 0)
{
+ if (ttlInMs < 0)
+ {
+ throw new ArgumentException("Time must be in milliseconds and greater than 0", nameof(ttlInMs));
+ }
+ else
+ {
+ Arguments.Add("x-expires", ttlInMs);
+ }
AutoDelete = autoDelete;
return this;
}
@@ -46,7 +57,7 @@ public RabbitMqQueueOptionsBuilder SetArguments(Dictionary argum
///
/// Add input queue arguments to the default settings
///
- public RabbitMqQueueOptionsBuilder AddArgument(string key, string val)
+ public RabbitMqQueueOptionsBuilder AddArgument(string key, object val)
{
Arguments.Add(key, val);
return this;