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) {