[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)
|
private async void OnFilterAdded(object? _, Filter filter)
|
||||||
{
|
{
|
||||||
if (filter.User.Id != _userId) return;
|
try
|
||||||
await _hub.Clients.User(_userId).FilterAddedAsync(FilterRenderer.RenderOne(filter));
|
{
|
||||||
|
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)
|
private async void OnFilterUpdated(object? _, Filter filter)
|
||||||
{
|
{
|
||||||
if (filter.User.Id != _userId) return;
|
try
|
||||||
await _hub.Clients.User(_userId).FilterUpdatedAsync(FilterRenderer.RenderOne(filter));
|
{
|
||||||
|
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)
|
private async void OnFilterRemoved(object? _, Filter filter)
|
||||||
{
|
{
|
||||||
if (filter.User.Id != _userId) return;
|
try
|
||||||
await _hub.Clients.User(_userId).FilterRemovedAsync(filter.Id);
|
{
|
||||||
|
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
|
#endregion
|
||||||
|
|
Loading…
Add table
Reference in a new issue