From c4be9e236670cbca7e081fd4778523b339a1f624 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期一, 09 六月 2025 08:44:11 +0800 Subject: [PATCH] 1 --- 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs | 84 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 74 insertions(+), 10 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs" index 108f85c..5d2e8af 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs" @@ -14,29 +14,87 @@ using WIDESEA_IStorageSocketServices; using Microsoft.Extensions.Configuration; using WIDESEA_Repository; +using Microsoft.Extensions.DependencyInjection; namespace WIDESEA_StorageTaskServices { - public class MyBackgroundService : IHostedService, IDisposable + public class MyBackgroundService : BackgroundService, IDisposable { private readonly ILogger<MyBackgroundService> _logger; Connection connection = AppSettings.Configuration.GetSection("Connection").Get<Connection>(); public SocketClientService _socket { get; set; } - private readonly IDt_HostLogRepository _hostLogRepository; private Timer _timer; - - public MyBackgroundService(ILogger<MyBackgroundService> logger, SocketClientService socketClientService, IDt_HostLogRepository hostLogRepository) + + private readonly IServiceProvider _serviceProvider; + + public MyBackgroundService(ILogger<MyBackgroundService> logger, SocketClientService socketClientService, IServiceProvider serviceProvider) { _logger = logger; _socket = socketClientService; - _hostLogRepository = hostLogRepository; + _serviceProvider = serviceProvider; + } + + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + while (!stoppingToken.IsCancellationRequested) + { + // 涓烘瘡娆′换鍔″垱寤烘柊浣滅敤鍩� + using (var scope = _serviceProvider.CreateScope()) + { + DateTime timeHandLe = DateTime.Now.AddMinutes(-15); + if (!_socket.Socketonline()) + { + if (_socket.Time < timeHandLe) + { + _socket.Time = DateTime.Now; + _socket.AddErrorMessage("2000", "Host", ""); + } + _socket.ConnectServer(connection.IP, connection.Port); + } + + var hostAll = await SqlSugarHelper.DbWMS.Queryable<Dt_HostLog>().Where(x => true).ToListAsync(); + + if (hostAll.Count != 0) + { + DateTime threshold = DateTime.Now.AddSeconds(-30); + DateTime time = DateTime.Now.AddMinutes(-5); + DateTime Y = DateTime.Now.AddMinutes(-3); + + var Reissue = hostAll.Where(x => x.CreateDate < threshold || x.ModifyDate < threshold).ToList(); + + var hostLogtime = hostAll.Where(x => x.CreateDate < time || x.ModifyDate < time).ToList(); + + var Heart = hostAll.Where(x => x.CreateDate < Y || x.ModifyDate < Y && x.CommandID == 910).FirstOrDefault(); + + if (Heart != null) + { + Heart.CreateDate = DateTime.Now; + await SqlSugarHelper.DbWMS.Updateable(Heart).ExecuteCommandAsync(); + + _socket.AddErrorMessage("2000", "Host", ""); + _socket.HandleDisconnection(); + } + if (hostLogtime.Count > 0) + { + await SqlSugarHelper.DbWMS.Updateable(hostLogtime).ExecuteCommandAsync(); + } + foreach (var item in Reissue) + { + _socket.clientSend(_socket.MakeStringToByteMsg(item.Messgae)); + Thread.Sleep(1000); + } + } + } + + await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken); + } } public Task StartAsync(CancellationToken cancellationToken = default) { //TimeSpan.FromMinutes(5) - _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(1)); + //_timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(1)); return Task.CompletedTask; } @@ -59,9 +117,14 @@ DateTime Y = DateTime.Now.AddMinutes(-3); - var hostLog = _hostLogRepository.QueryData(x => x.CreateDate < threshold || x.ModifyDate < threshold).ToList(); - var hostLogtime = _hostLogRepository.QueryData(x => x.CreateDate < time || x.ModifyDate < time).ToList(); - var Heart = _hostLogRepository.QueryFirst(x => x.CreateDate < Y || x.ModifyDate < Y && x.CommandID == 910); + //var hostLog = _hostLogRepository.QueryData(x => x.CreateDate < threshold || x.ModifyDate < threshold).ToList(); + var hostLog = SqlSugarHelper.DbWMS.Queryable<Dt_HostLog>().Where(x => x.CreateDate < threshold || x.ModifyDate < threshold).ToList(); + var hostLogtime = SqlSugarHelper.DbWMS.Queryable<Dt_HostLog>().Where(x => x.CreateDate < time || x.ModifyDate < time).ToList(); + //var hostLogtime = _hostLogRepository.QueryData(x => x.CreateDate < time || x.ModifyDate < time).ToList(); + + var Heart = SqlSugarHelper.DbWMS.Queryable<Dt_HostLog>().Where(x => x.CreateDate < Y || x.ModifyDate < Y && x.CommandID == 910).First(); + + //var Heart = _hostLogRepository.QueryFirst(x => x.CreateDate < Y || x.ModifyDate < Y && x.CommandID == 910); if (Heart != null) { Heart.CreateDate = DateTime.Now; @@ -73,7 +136,8 @@ } if (hostLogtime.Count > 0) { - _hostLogRepository.DeleteData(hostLogtime); + SqlSugarHelper.DbWMS.Updateable(hostLogtime).ExecuteCommand(); + //_hostLogRepository.DeleteData(hostLogtime); } foreach (var item in hostLog) { -- Gitblit v1.9.3