From 12e407f523b307baa17795e3ff9f94be7eaa949b Mon Sep 17 00:00:00 2001 From: ChenYi <296215406@outlook.com> Date: Fri, 15 Aug 2025 13:45:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Redis=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E8=AE=A2=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JiShe.ServicePro | 2 +- .../ServiceCommunicationChannelSubscriberService.cs | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/JiShe.ServicePro b/JiShe.ServicePro index 3ef9c78..125082c 160000 --- a/JiShe.ServicePro +++ b/JiShe.ServicePro @@ -1 +1 @@ -Subproject commit 3ef9c78974a2d08b8fd73042951d3481d3d32291 +Subproject commit 125082c75bd469f43f2e445e488a3c425a804fc6 diff --git a/src/JiShe.IoT.Application/Subscribers/ServiceCommunicationChannelSubscriberService.cs b/src/JiShe.IoT.Application/Subscribers/ServiceCommunicationChannelSubscriberService.cs index b436cb6..653fbf0 100644 --- a/src/JiShe.IoT.Application/Subscribers/ServiceCommunicationChannelSubscriberService.cs +++ b/src/JiShe.IoT.Application/Subscribers/ServiceCommunicationChannelSubscriberService.cs @@ -41,6 +41,9 @@ namespace JiShe.ServicePro.OneNETManagement.Subscribers { // 为订阅回调创建独立的 FreeSql 客户端 var callbackFreeSqlDbContext = FreeSqlDbContext; + var callbackFreeSql = RedisProvider; + + // 订阅频道 await _redisPubSubService.SubscribeReliableAsync(RedisConst.ServiceCommunicationDeviceStatusEventName, async (message) => { @@ -48,7 +51,7 @@ namespace JiShe.ServicePro.OneNETManagement.Subscribers { _logger.LogWarning($"Redis订阅收到设备状态消息: {message.Serialize()}"); - HandDeviceStatus(message, callbackFreeSqlDbContext).ConfigureAwait(false).GetAwaiter().GetResult(); + HandDeviceStatus(message, callbackFreeSqlDbContext, callbackFreeSql).ConfigureAwait(false).GetAwaiter().GetResult(); return true; } catch (Exception ex) @@ -71,9 +74,10 @@ namespace JiShe.ServicePro.OneNETManagement.Subscribers /// /// /// + /// /// /// - private async Task HandDeviceStatus(DeviceStatusMessage deviceStatusMessage, IFreeSqlProvider callbackFreeSqlDbContext) + private async Task HandDeviceStatus(DeviceStatusMessage deviceStatusMessage, IFreeSqlProvider callbackFreeSqlDbContext, IFreeRedisProvider callbackFreeRedisProvider) { try { @@ -100,7 +104,7 @@ namespace JiShe.ServicePro.OneNETManagement.Subscribers deviceEntity.LastOfflineTime = TimestampHelper.ConvertToDateTime(deviceStatusMessage.ReceivedTime, TimestampUnit.Milliseconds, DateTimeKind.Local); } - var updateResult = await FreeSqlDbContext.Instance.Update() + var updateResult = await callbackFreeSqlDbContext.Instance.Update() .SetSource(deviceEntity) .UpdateColumns(a => new { a.DeviceOnlineStatus, a.LastOnlineTime, a.LastOfflineTime }) .ExecuteAffrowsAsync(); @@ -117,7 +121,7 @@ namespace JiShe.ServicePro.OneNETManagement.Subscribers deviceCacheInfos.IoTPlatformResponse = null; deviceCacheInfos.PlatformPassword = null; - RedisProvider.Instance.HSet(RedisConst.CacheAllDeviceInfoHashKey, deviceEntity.DeviceAddress, deviceCacheInfos); + callbackFreeRedisProvider.Instance.HSet(RedisConst.CacheAllDeviceInfoHashKey, deviceEntity.DeviceAddress, deviceCacheInfos); } catch (Exception) {