You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When message is not completed, the message not supposed to be processed until the Lock Duration expire.
Message Lock Duration is set to 5 minutes
But non completed messages were retried every 10 seconds.
Actual Behavior
Message is being processed as soon as SessionIdleTimeout kick in
Expected Behavior
Even SessionIdleTimeout , message still should not be picked up until the original locked duration expires.
Here is my code, this is to work around this issue #454 (comment)
var runResult = await ProcessEvent(retryAndExecutor, eventName, messageData, message.ApplicationProperties);
if (runResult)
{
_logger.LogInformation($"Complete operation: {retryAndExecutor.Id} {args.Print()}");
await args.CompleteMessageAsync(message);
}
else
{
if (retryAndExecutor.HasChanged)
{
_logger.LogInformation($"Defer operation: {retryAndExecutor.Id} immediately, delivery count increased {args.Print()}");
await args.AbandonMessageAsync(message, retryAndExecutor.ApplicationProperties);
}
else
{
var timeInQueue = DateTimeOffset.UtcNow.Subtract(args.Message.EnqueuedTime).TotalMinutes;
if (timeInQueue > _maxMinutesToProcess)
{
_logger.LogInformation($"DLQ operation: {retryAndExecutor.Id} timeInQueue {timeInQueue} exceeds {_maxMinutesToProcess} minutes. {args.Print()}");
await args.DeadLetterMessageAsync(message, $"TimeInQueue exceeds limit {_maxMinutesToProcess}");
}
else
{
_logger.LogInformation($"Defer operation: {retryAndExecutor.Id} with message lock duration delay, delivery count stays the same {args.Print()}");
}
}
}
The text was updated successfully, but these errors were encountered:
This item in our backlog, however we currently don't have an ETA on when development might start on this. For now, to help us give this the right priority, it would be helpful to see others vote and support this item.
Description
When message is not completed, the message not supposed to be processed until the Lock Duration expire.
Message Lock Duration is set to 5 minutes
But non completed messages were retried every 10 seconds.
Actual Behavior
Expected Behavior
Here is my code, this is to work around this issue #454 (comment)
var runResult = await ProcessEvent(retryAndExecutor, eventName, messageData, message.ApplicationProperties);
if (runResult)
{
_logger.LogInformation($"Complete operation: {retryAndExecutor.Id} {args.Print()}");
await args.CompleteMessageAsync(message);
}
else
{
if (retryAndExecutor.HasChanged)
{
_logger.LogInformation($"Defer operation: {retryAndExecutor.Id} immediately, delivery count increased {args.Print()}");
await args.AbandonMessageAsync(message, retryAndExecutor.ApplicationProperties);
}
else
{
var timeInQueue = DateTimeOffset.UtcNow.Subtract(args.Message.EnqueuedTime).TotalMinutes;
if (timeInQueue > _maxMinutesToProcess)
{
_logger.LogInformation($"DLQ operation: {retryAndExecutor.Id} timeInQueue {timeInQueue} exceeds {_maxMinutesToProcess} minutes. {args.Print()}");
await args.DeadLetterMessageAsync(message, $"TimeInQueue exceeds limit {_maxMinutesToProcess}");
}
else
{
_logger.LogInformation($"Defer operation: {retryAndExecutor.Id} with message lock duration delay, delivery count stays the same {args.Print()}");
}
}
}
The text was updated successfully, but these errors were encountered: