Skip to content

Commit

Permalink
Merge pull request #92 from LykkeCity/LT-2743-publish-strategy-with-c…
Browse files Browse the repository at this point in the history
…onfirmations

Lt 2743 publish strategy with confirmations
  • Loading branch information
tarurar committed Nov 6, 2020
2 parents e5896d9 + d907c28 commit e622d66
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
Expand Up @@ -10,6 +10,7 @@ namespace Lykke.RabbitMqBroker.Publisher
public sealed class FanoutPublishStrategyWithConfirmations : IRabbitMqPublishStrategy
{
private readonly bool _durable;
private readonly TimeSpan _defaultConfirmationTimeout = TimeSpan.FromSeconds(5);

public FanoutPublishStrategyWithConfirmations(RabbitMqSubscriptionSettings settings)
{
Expand All @@ -32,7 +33,7 @@ public void Publish(RabbitMqSubscriptionSettings settings, IModel channel, RawMe
routingKey: string.Empty,
basicProperties: null,
body: message.Body);
channel.WaitForConfirmsOrDie(settings.PublisherConfirmationTimeout);
channel.WaitForConfirmsOrDie(settings.PublisherConfirmationTimeout ?? _defaultConfirmationTimeout);
}
}
}
9 changes: 4 additions & 5 deletions src/Lykke.RabbitMqBroker/RabbitMqSubscriptionSettings.cs
Expand Up @@ -12,7 +12,6 @@ public sealed class RabbitMqSubscriptionSettings
{
internal const string LykkeNameSpace = "lykke";
internal static TimeSpan DefaultReconnectionDelay = TimeSpan.FromSeconds(3);
internal static TimeSpan DefaultPublisherConfirmationTimeout = TimeSpan.FromSeconds(5);
internal const int DefaultReconnectionsCountToAlarm = 20;

public string ConnectionString { get; set; }
Expand All @@ -30,17 +29,17 @@ public sealed class RabbitMqSubscriptionSettings
/// </summary>
public int ReconnectionsCountToAlarm { get; set; }
/// <summary>
/// The confirmation period when publishing messages.
/// Default value is 5 seconds
/// The confirmation period when publishing messages. The confirmation strategy will not be used
/// unless the value is provided explicitly. Check <see cref="UsePublisherConfirmation"/>.
/// </summary>
public TimeSpan PublisherConfirmationTimeout { get; set; }
public TimeSpan? PublisherConfirmationTimeout { get; set; }

public RabbitMqSubscriptionSettings()
{
ReconnectionDelay = DefaultReconnectionDelay;
ReconnectionsCountToAlarm = DefaultReconnectionsCountToAlarm;
RoutingKey = string.Empty;
PublisherConfirmationTimeout = DefaultPublisherConfirmationTimeout;
PublisherConfirmationTimeout = null;
}

/// <summary>
Expand Down

0 comments on commit e622d66

Please sign in to comment.