Browse Source

Added better error handling for event system

Kenric Nugteren 1 tuần trước cách đây
mục cha
commit
e2d6bc719e
2 tập tin đã thay đổi với 17 bổ sung3 xóa
  1. 9 2
      prs.server/Engines/Database/DatabaseEngine.cs
  2. 8 1
      prs.stores/Events/Event.cs

+ 9 - 2
prs.server/Engines/Database/DatabaseEngine.cs

@@ -303,7 +303,7 @@ public class DatabaseEngine : Engine<DatabaseServerProperties>
 
         if(_scheduleTimer is null)
         {
-            _scheduleTimer = new Timer(TimeSpan.FromMinutes(1));
+            _scheduleTimer = new Timer(TimeSpan.FromMinutes(0.1));
             _scheduleTimer.Elapsed += _scheduleTimer_Elapsed;
             _scheduleTimer.AutoReset = true;
         }
@@ -313,7 +313,14 @@ public class DatabaseEngine : Engine<DatabaseServerProperties>
 
     private void _scheduleTimer_Elapsed(object? sender, ElapsedEventArgs e)
     {
-        EventUtils.CheckScheduledEvents();
+        try
+        {
+            EventUtils.CheckScheduledEvents();
+        }
+        catch(Exception error)
+        {
+            CoreUtils.LogException("", error);
+        }
     }
 
     public override void Stop()

+ 8 - 1
prs.stores/Events/Event.cs

@@ -75,7 +75,14 @@ public static class EventUtils
 
     public static IEventData Deserialize(string json)
     {
-        return JsonSerializer.Deserialize<IEventData>(json, SerializationSettings())!;
+        try
+        {
+            return JsonSerializer.Deserialize<IEventData>(json, SerializationSettings())!;
+        }
+        catch(Exception e)
+        {
+            throw new AggregateException("Error deserialising event", e);
+        }
     }
 
     #endregion