| | |
| | | using Utility.Tools; |
| | | using Wms.Tools; |
| | | using WMS.BLL.BllSoServer; |
| | | using WMS.BLL.BllTransServer; |
| | | using WMS.BLL.DataServer; |
| | | using WMS.IBLL.IDataServer; |
| | | |
| | |
| | | //创建定时任务 |
| | | 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> |
| | |
| | | { |
| | | // 停止定时器 |
| | | _timer?.Change(Timeout.Infinite, 0); |
| | | _timer2?.Change(Timeout.Infinite, 0); |
| | | _timer3?.Change(Timeout.Infinite, 0); |
| | | _periodicReport?.Change(Timeout.Infinite, 0); |
| | | |
| | | return Task.CompletedTask; |
| | |
| | | { |
| | | try |
| | | { |
| | | StockDetailServer _stockDetail = new StockDetailServer(); |
| | | HopperTransportServer _stockDetail = new HopperTransportServer(); |
| | | //任务逻辑 |
| | | _stockDetail.StockCheck(); |
| | | _stockDetail.TransferBackTimer(_agvUrl); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | //执行任务逻辑 |
| | | 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> |
| | | /// 在服务结束运行时,定时器得到正确地清理和释放 |