Skip to content

Commit

Permalink
Add ability to configure failed messages expiration term
Browse files Browse the repository at this point in the history
  • Loading branch information
dima-zhemkov committed May 23, 2022
1 parent 1f03afb commit baf94ac
Show file tree
Hide file tree
Showing 8 changed files with 14 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public void StoreReceivedExceptionMessage(string name, string group, string cont
Content = content,
Retries = _capOptions.Value.FailedRetryCount,
Added = DateTime.Now,
ExpiresAt = DateTime.Now.AddDays(15),
ExpiresAt = DateTime.Now.AddSeconds(_capOptions.Value.FailedMessageExpiredAfter),
StatusName = StatusName.Failed
};
}
Expand Down
2 changes: 1 addition & 1 deletion src/DotNetCore.CAP.MongoDB/IDataStorage.MongoDB.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public void StoreReceivedExceptionMessage(string name, string group, string cont
Name = name,
Content = content,
Added = DateTime.Now,
ExpiresAt = DateTime.Now.AddDays(15),
ExpiresAt = DateTime.Now.AddSeconds(_capOptions.Value.FailedMessageExpiredAfter),
Retries = _capOptions.Value.FailedRetryCount,
Version = _capOptions.Value.Version,
StatusName = nameof(StatusName.Failed)
Expand Down
2 changes: 1 addition & 1 deletion src/DotNetCore.CAP.MySql/IDataStorage.MySql.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public void StoreReceivedExceptionMessage(string name, string group, string cont
new MySqlParameter("@Content", content),
new MySqlParameter("@Retries", _capOptions.Value.FailedRetryCount),
new MySqlParameter("@Added", DateTime.Now),
new MySqlParameter("@ExpiresAt", DateTime.Now.AddDays(15)),
new MySqlParameter("@ExpiresAt", DateTime.Now.AddSeconds(_capOptions.Value.FailedMessageExpiredAfter)),
new MySqlParameter("@StatusName", nameof(StatusName.Failed))
};

Expand Down
2 changes: 1 addition & 1 deletion src/DotNetCore.CAP.PostgreSql/IDataStorage.PostgreSql.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public void StoreReceivedExceptionMessage(string name, string group, string cont
new NpgsqlParameter("@Content", content),
new NpgsqlParameter("@Retries", _capOptions.Value.FailedRetryCount),
new NpgsqlParameter("@Added", DateTime.Now),
new NpgsqlParameter("@ExpiresAt", DateTime.Now.AddDays(15)),
new NpgsqlParameter("@ExpiresAt", DateTime.Now.AddSeconds(_capOptions.Value.FailedMessageExpiredAfter)),
new NpgsqlParameter("@StatusName", nameof(StatusName.Failed))
};

Expand Down
2 changes: 1 addition & 1 deletion src/DotNetCore.CAP.SqlServer/IDataStorage.SqlServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public void StoreReceivedExceptionMessage(string name, string group, string cont
new SqlParameter("@Content", content),
new SqlParameter("@Retries", _capOptions.Value.FailedRetryCount),
new SqlParameter("@Added", DateTime.Now),
new SqlParameter("@ExpiresAt", DateTime.Now.AddDays(15)),
new SqlParameter("@ExpiresAt", DateTime.Now.AddSeconds(_capOptions.Value.FailedMessageExpiredAfter)),
new SqlParameter("@StatusName", nameof(StatusName.Failed))
};

Expand Down
7 changes: 7 additions & 0 deletions src/DotNetCore.CAP/CAP.Options.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public class CapOptions
public CapOptions()
{
SucceedMessageExpiredAfter = 24 * 3600;
FailedMessageExpiredAfter = 15 * 24 * 3600;
FailedRetryInterval = 60;
FailedRetryCount = 50;
ConsumerThreadCount = 1;
Expand Down Expand Up @@ -58,6 +59,12 @@ public CapOptions()
/// </summary>
public int SucceedMessageExpiredAfter { get; set; }

/// <summary>
/// Sent or received failed message after time span of due, then the message will be deleted at due time.
/// Default is 15*24*3600 seconds.
/// </summary>
public int FailedMessageExpiredAfter { get; set; }

/// <summary>
/// Failed messages polling delay time.
/// Default is 60 seconds.
Expand Down
2 changes: 1 addition & 1 deletion src/DotNetCore.CAP/Internal/IMessageSender.Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ private async Task<bool> SetFailedState(MediumMessage message, Exception ex)
var needRetry = UpdateMessageForRetry(message);

message.Origin.AddOrUpdateException(ex);
message.ExpiresAt = message.Added.AddDays(15);
message.ExpiresAt = message.Added.AddSeconds(_options.Value.FailedMessageExpiredAfter);

await _dataStorage.ChangePublishStateAsync(message, StatusName.Failed);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ private async Task<bool> SetFailedState(MediumMessage message, Exception ex)
var needRetry = UpdateMessageForRetry(message);

message.Origin.AddOrUpdateException(ex);
message.ExpiresAt = message.Added.AddDays(15);
message.ExpiresAt = message.Added.AddSeconds(_options.FailedMessageExpiredAfter);

await _dataStorage.ChangeReceiveStateAsync(message, StatusName.Failed);

Expand Down

0 comments on commit baf94ac

Please sign in to comment.