diff --git a/Src/Dlhis.ScheduledTask/Jobs/HeartbeatJob.cs b/Src/Dlhis.ScheduledTask/Jobs/HeartbeatJob.cs index cc25cb4e..c2cef7a0 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/HeartbeatJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/HeartbeatJob.cs @@ -22,17 +22,17 @@ public class HeartbeatJob : BaseJob { var devices = await DbContext.Queryable().Where(x => x.Enable).Where(x => x.HeartbeatInterval > 0).ToListAsync(); - devices.AsParallel().ForAll(device => + await Parallel.ForEachAsync(devices, async (device, cancellationToken) => { try { var ipInfo = JsonConvert.DeserializeObject(device.ConnectionInfo); - new TcpClient().Connect(IPAddress.Parse(ipInfo.IP), ipInfo.Port); + await new TcpClient().ConnectAsync(IPAddress.Parse(ipInfo.IP), ipInfo.Port, cancellationToken); - DbContext.Updateable() + await DbContext.Updateable() .SetColumns(x => x.LastHeartbeatTime == DateTime.Now) .Where(x => x.DeviceUniqueNo == device.UniqueNo) - .ExecuteCommand(); + .ExecuteCommandAsync(cancellationToken); } catch (Exception) {