using Ips.Sps.Scheduling.Entities; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Ips.Library.Basic; using Ips.Library.Entity; using Ips.Library.LocLib; namespace Ips.Sps.Scheduling.SigAds { public class DdcWorker : AdWorkerBase { public DdcWorker(RunTsk context) : base(context) { } public override void Execute(CancellationToken token) { var tsk = CurrentTsk; var adCard = CurrentTsk.AdCard; var allSig = tsk.RefSigList.Concat(tsk.TarSigList).ToList(); var dxSig = tsk.DxSigList.ToList(); var adGroup = new AdSigGroup(tsk.TskId, DateTime.Now.ClearMillisecond()); OnAdSigGroupStart(new AdSigGroupStartEventArgs(adGroup)); try { var adcResult = ExecuteDdc(adCard, allSig, dxSig, false, null, token); allSig.ForEach(sig => { var sigAdResult = WrapSigAdResult(tsk, adGroup, adCard, sig, adcResult.Result); if (sigAdResult != null) adGroup.GroupSigList.Add(sigAdResult); }); } catch (Exception ex) { ex.HandleCancelEx(m => { IpsLogger.Error($"任务【{tsk.TskName}】,执行采集异常",m); }); } finally { adGroup.GroupSigList.CompleteAdding(); } } } }