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(); + } } }