Преглед на файлове

连接出错时加入重试

Cyrus Zhou преди 10 месеца
родител
ревизия
bbc4bb05a3
променени са 1 файла, в които са добавени 12 реда и са изтрити 4 реда
  1. 12 4
      Admin.NET/Admin.NET.Core/EventBus/EventConsumer.cs

+ 12 - 4
Admin.NET/Admin.NET.Core/EventBus/EventConsumer.cs

@@ -54,13 +54,21 @@ public class EventConsumer<T> : IDisposable
         }
         _consumerCts = new CancellationTokenSource();
         var ct = _consumerCts.Token;
-        _consumerTask = Task.Factory.StartNew(() =>
+        _consumerTask = Task.Factory.StartNew(async () =>
         {
             while (!ct.IsCancellationRequested)
             {
-                var cr = Consumer.TakeOne(10);
-                if (cr == null) continue;
-                Received?.Invoke(this, cr);
+                try
+                {
+                    var cr = Consumer.TakeOne(10);
+                    if (cr == null) continue;
+                    Received?.Invoke(this, cr);
+                }
+                catch (Exception ex)
+                {
+                    Console.WriteLine($"消息消费异常: {ex.Message}");
+                    await Task.Delay(1000); // 短暂等待后继续尝试
+                }
             }
         }, ct, TaskCreationOptions.LongRunning, TaskScheduler.Default);
     }