From 80c84069e11f9578a0961165f56fec4974d57696 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 23 Feb 2024 19:21:49 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=BF=83=E8=B7=B3=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=95=B0=E6=8D=AE=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommonJobs/HeartbeatJob.cs | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/CommonJobs/HeartbeatJob.cs b/Src/Dlhis.ScheduledTask/CommonJobs/HeartbeatJob.cs index 908ec2ad..f9453196 100644 --- a/Src/Dlhis.ScheduledTask/CommonJobs/HeartbeatJob.cs +++ b/Src/Dlhis.ScheduledTask/CommonJobs/HeartbeatJob.cs @@ -2,6 +2,7 @@ using System.Net.Sockets; using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Device.Entities; +using Kurisu.Core.DataAccess.Entity; using Kurisu.SqlSugar.Services; using Newtonsoft.Json; @@ -20,23 +21,31 @@ public class HeartbeatJob public async Task RunAsync() { - var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync(); - foreach (var device in devices) + _dbContext.Client.QueryFilter.ClearAndBackup(); + try { - try + var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync(); + foreach (var device in devices) { - var ipInfo = JsonConvert.DeserializeObject(device.ConnectionInfo); + try + { + var ipInfo = JsonConvert.DeserializeObject(device.ConnectionInfo); - await new TcpClient().ConnectAsync(IPAddress.Parse(ipInfo.IP), ipInfo.Port); - await _dbContext.Updateable().SetColumns(x => x.LastHeartbeatTime == DateTime.Now) - .Where(x => x.DeviceUniqueNo == device.UniqueNo).ExecuteCommandAsync(); + await new TcpClient().ConnectAsync(IPAddress.Parse(ipInfo.IP), ipInfo.Port); + await _dbContext.Updateable().SetColumns(x => x.LastHeartbeatTime == DateTime.Now) + .Where(x => x.DeviceUniqueNo == device.UniqueNo).ExecuteCommandAsync(); - _logger.LogInformation("心跳设备:{no}成功", device.UniqueNo); - } - catch (Exception ex) - { - _logger.LogError(ex, "心跳设备失败:{message}", ex.Message); + _logger.LogInformation("心跳设备:{no}成功", device.UniqueNo); + } + catch (Exception ex) + { + _logger.LogError(ex, "心跳设备失败:{message}", ex.Message); + } } } + finally + { + _dbContext.Client.QueryFilter.Restore(); + } } }