Skip to content

Commit 9343f22

Browse files
committed
Enhance error handling in delay message sending process. (#1367)
Improved error handling and logging during message sending. Wrapped `_sender.SendAsync(nextMessage)` in a try-catch block to log errors with message IDs.
1 parent dcfa42c commit 9343f22

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

src/DotNetCore.CAP/Processor/IDispatcher.Default.cs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ await Task.WhenAll(Enumerable.Range(0, _options.SubscriberParallelExecuteThreadC
7575
.Select(_ => Task.Run(Processing, _tasksCts.Token)).ToArray())
7676
.ConfigureAwait(false);
7777
}
78+
7879
_ = Task.Run(async () =>
7980
{
8081
//When canceling, place the message status of unsent in the queue to delayed
@@ -101,7 +102,18 @@ await Task.WhenAll(Enumerable.Range(0, _options.SubscriberParallelExecuteThreadC
101102
await foreach (var nextMessage in _schedulerQueue.GetConsumingEnumerable(_tasksCts.Token))
102103
{
103104
_tasksCts.Token.ThrowIfCancellationRequested();
104-
await _sender.SendAsync(nextMessage).ConfigureAwait(false);
105+
try
106+
{
107+
var result = await _sender.SendAsync(nextMessage).ConfigureAwait(false);
108+
if (!result.Succeeded)
109+
{
110+
_logger.LogError("Delay message sending failed. MessageId: {MessageId} ", nextMessage.DbId);
111+
}
112+
}
113+
catch (Exception ex)
114+
{
115+
_logger.LogError(ex, "Error sending scheduled message. MessageId: {MessageId}", nextMessage.DbId);
116+
}
105117
}
106118

107119
_tasksCts.Token.WaitHandle.WaitOne(100);
@@ -112,11 +124,11 @@ await Task.WhenAll(Enumerable.Range(0, _options.SubscriberParallelExecuteThreadC
112124
}
113125
catch (Exception ex)
114126
{
115-
_logger.LogWarning(ex,
116-
"Scheduled message publishing failed unexpectedly, which will stop future scheduled " +
117-
"messages from publishing. See more details here: https://github.com/dotnetcore/CAP/issues/1637. " +
118-
"Exception: {Message}",
119-
ex.Message);
127+
_logger.LogError(ex,
128+
"Delay message publishing failed unexpectedly, which will stop future scheduled " +
129+
"messages from publishing. See more details here: https://github.com/dotnetcore/CAP/issues/1637. " +
130+
"Exception: {Message}",
131+
ex.Message);
120132
throw;
121133
}
122134
}

0 commit comments

Comments
 (0)