[backend/signalr] Catch exceptions in event handlers to prevent exceptions from causing backend crashes
This commit is contained in:
parent
004af22b68
commit
c91a1fa8bc
1 changed files with 27 additions and 6 deletions
|
@ -418,20 +418,41 @@ public sealed class StreamingConnectionAggregate : IDisposable
|
|||
|
||||
private async void OnFilterAdded(object? _, Filter filter)
|
||||
{
|
||||
if (filter.User.Id != _userId) return;
|
||||
await _hub.Clients.User(_userId).FilterAddedAsync(FilterRenderer.RenderOne(filter));
|
||||
try
|
||||
{
|
||||
if (filter.User.Id != _userId) return;
|
||||
await _hub.Clients.User(_userId).FilterAddedAsync(FilterRenderer.RenderOne(filter));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError("Event handler {handler} threw exception: {e}", nameof(OnFilterAdded), e);
|
||||
}
|
||||
}
|
||||
|
||||
private async void OnFilterUpdated(object? _, Filter filter)
|
||||
{
|
||||
if (filter.User.Id != _userId) return;
|
||||
await _hub.Clients.User(_userId).FilterUpdatedAsync(FilterRenderer.RenderOne(filter));
|
||||
try
|
||||
{
|
||||
if (filter.User.Id != _userId) return;
|
||||
await _hub.Clients.User(_userId).FilterUpdatedAsync(FilterRenderer.RenderOne(filter));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError("Event handler {handler} threw exception: {e}", nameof(OnFilterUpdated), e);
|
||||
}
|
||||
}
|
||||
|
||||
private async void OnFilterRemoved(object? _, Filter filter)
|
||||
{
|
||||
if (filter.User.Id != _userId) return;
|
||||
await _hub.Clients.User(_userId).FilterRemovedAsync(filter.Id);
|
||||
try
|
||||
{
|
||||
if (filter.User.Id != _userId) return;
|
||||
await _hub.Clients.User(_userId).FilterRemovedAsync(filter.Id);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError("Event handler {handler} threw exception: {e}", nameof(OnFilterRemoved), e);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
Loading…
Add table
Reference in a new issue