public void InitializeComponent(string path) { _listFileStruct.Clear(); _listMessage.Clear(); _msmq.InitializeMessageQueue(path); _inputDataBase.InitializeComponent(path); StringBuilder stb = new StringBuilder(); foreach (var config in _ftpConfigs) { stb.Clear(); stb.AppendLine($"开始检查 {config.FileType} 配置....."); Console.WriteLine(); if (config.RemoteBackupFolder.Length > 0) { stb.AppendLine($"启用文件备份,下载文件将会备份至Ftp/{config.RemoteBackupFolder}目录"); } if (config.NameContains.Length > 0) { stb.AppendLine($"启用文件名验证,仅会下载包含{config.NameContains}的文件"); } stb.AppendLine($"{config.FileType} 配置 √"); Console.WriteLine(stb); } //Console.WriteLine("running after 3 s..."); //Thread.Sleep(1000); //Console.WriteLine("running after 2 s..."); //Thread.Sleep(1000); //Console.WriteLine("running after 1 s..."); //Thread.Sleep(1000); //Console.WriteLine("Go"); List <Task> taskList = new List <Task>(); taskList.AddRange(_ftpConfigs.Select(f => Task.Factory.StartNew(x => { f.MaxDegreeOfParallelism = f.MaxDegreeOfParallelism == 0 || f.MaxDegreeOfParallelism > Environment.ProcessorCount ? Environment.ProcessorCount : f.MaxDegreeOfParallelism; BeginWork(f); }, 1))); Task.WaitAll(taskList.ToArray()); //仅全部下载成功情况下,才能整批导入 if (_listFileStruct.Count > 0 && _listFileStruct.Count(x => !x.IsSuccess) == 0) { if (_msmq.SendTranMessageQueue(_listMessage, (result, msg) => Nlog.Info("MessageQueue", $"{_listFileStruct.Count}个 msmq {(result ? "√" : "failed")} {msg}"))) { _ftpConfigs.ForEach(DeleteFtpFiles); } } else { Nlog.Info($"整包下载总数:{_listFileStruct.Count},其中失败{_listFileStruct.Count(x => !x.IsSuccess)}"); } _inputDataBase.BeginWork(); }
public void InitializeComponent(string path) { _msmq.InitializeMessageQueue(path); }