NewLife/NewLife.Remoting

使用较短缓存时间,减少长时间在线时的内存对象与数据库数据不一致的风险
大石头 authored at 2025-12-04 23:22:55
e0af3d6
Tree
1 Parent(s) fbbde3b
Summary: 1 changed files with 4 additions and 2 deletions.
Modified +4 -2
Modified +4 -2
diff --git a/NewLife.Remoting.Extensions/Services/DefaultDeviceService.cs b/NewLife.Remoting.Extensions/Services/DefaultDeviceService.cs
index daaf479..2fbdef4 100644
--- a/NewLife.Remoting.Extensions/Services/DefaultDeviceService.cs
+++ b/NewLife.Remoting.Extensions/Services/DefaultDeviceService.cs
@@ -344,7 +344,8 @@ public abstract class DefaultDeviceService<TDevice, TOnline>(ISessionManager ses
 
         online = QueryOnline(sid);
 
-        if (online != null) _cache.Set($"{Name}Online:{sid}", online, 600);
+        // 使用较短缓存时间,减少长时间在线时的内存对象与数据库数据不一致的风险
+        if (online != null) _cache.Set($"{Name}Online:{sid}", online, 60);
 
         return online;
     }
@@ -374,7 +375,8 @@ public abstract class DefaultDeviceService<TDevice, TOnline>(ISessionManager ses
             }
         }
 
-        _cache.Set($"{Name}Online:{sid}", online, 600);
+        // 初次创建也仅缓存较短时间,避免长时间持有旧对象
+        _cache.Set($"{Name}Online:{sid}", online, 60);
 
         return online;
     }