wxw
2025-05-09 2cf8f4a928d3479068fc51be9633db4583eba3c9
Wms/Wms/DailyTaskService.cs
@@ -8,6 +8,7 @@
using Utility.Tools;
using Wms.Tools;
using WMS.BLL.BllSoServer;
using WMS.BLL.BllTransServer;
using WMS.BLL.DataServer;
using WMS.IBLL.IDataServer;
@@ -30,28 +31,12 @@
        //创建定时任务
        public Task StartAsync(CancellationToken cancellationToken)
        {
            #region 每天0点执行
            //计算距离下一个 0 点的时间间隔
            DateTime now = DateTime.Now;
            DateTime nextZeroHour = now.AddDays(1).Date;
            TimeSpan delay = nextZeroHour - now;
            //创建定时器,并设置回调函数
            _timer = new Timer(ExecuteDailyTask, null, delay, TimeSpan.FromDays(1));
            _periodicReport = new Timer(PeriodicReport, null, delay, TimeSpan.FromDays(1));
            //TimeSpan delay2 = TimeSpan.FromMinutes(2);
            TimeSpan delay = TimeSpan.FromMinutes(2);
            // 创建定时器,并设置回调函数
            // _timer2 = new Timer(ExecuteDailyTask2, null, delay2, TimeSpan.FromMinutes(3));
            //TimeSpan delay3 = TimeSpan.FromMinutes(2);
            // 创建定时器,并设置回调函数
            //_timer3 = new Timer(ExecuteDailyTask3, null, delay3, TimeSpan.FromMinutes(3));
            _timer = new Timer(ExecuteDailyTask, null, delay, TimeSpan.FromMinutes(5));
            return Task.CompletedTask;
            #endregion
        }
        /// <summary>
@@ -64,8 +49,6 @@
        {
            // 停止定时器
            _timer?.Change(Timeout.Infinite, 0);
            _timer2?.Change(Timeout.Infinite, 0);
            _timer3?.Change(Timeout.Infinite, 0);
            _periodicReport?.Change(Timeout.Infinite, 0);
            return Task.CompletedTask;
@@ -75,9 +58,9 @@
        {
            try
            {
                StockDetailServer _stockDetail = new StockDetailServer();
                HopperTransportServer _stockDetail = new HopperTransportServer();
                //任务逻辑
                _stockDetail.StockCheck();
                _stockDetail.TransferBackTimer(_agvUrl);
            }
            catch (Exception ex)
            {
@@ -86,58 +69,7 @@
            }
        }
        //执行任务逻辑
        private void ExecuteDailyTask2(object state)
        {
            try
            {
                ExportNoticeServer _exNotice = new ExportNoticeServer();
                //任务逻辑
                var list = _exNotice.BeiLiaoIssueOutHouse(_wcsUrl);
            }
            catch (Exception ex)
            {
                var logStr = $@".\log\WMS\WMS定时备料任务" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
                LogFile.SaveLogToFile($"WMS定时备料任务异常:( {ex.Message} ),", logStr);
            }
        }
        //执行任务逻辑
        private void ExecuteDailyTask3(object state)
        {
            try
            {
                ExportNoticeServer _exNotice = new ExportNoticeServer();
                //任务逻辑
                _exNotice.ProCallIssueOutHouse(_agvUrl);
            }
            catch (Exception ex)
            {
                var logStr = $@".\log\WMS\WMS定时备料任务" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
                LogFile.SaveLogToFile($"WMS定时备料任务异常:( {ex.Message} ),", logStr);
            }
        }
        //定时执行周期报表
        private void PeriodicReport(object state)
        {
            try
            {
                StockInfoServer _stock = new StockInfoServer();
                var arr = _stock.ByDayInsertStock();
                var logStr = $@".\log\WMS\WMS定时任务" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
                LogFile.SaveLogToFile($"WMS定时任务执行异常:{arr},", logStr);
                //释放资源
                _periodicReport?.Dispose();
            }
            catch (Exception ex)
            {
                var logStr = $@".\log\WMS\WMS定时任务" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
                LogFile.SaveLogToFile($"WMS定时任务执行异常:{DateTime.Now}:( {ex.Message} ),", logStr);
            }
        }
        /// <summary>
        /// 在服务结束运行时,定时器得到正确地清理和释放