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; namespace Ips.Sps.Scheduling.SigAds { public class DdcKeepWorker : AdWorkerBase { public DdcKeepWorker(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(); try { ExecuteDdc(adCard, allSig, dxSig, true, adcResult => { var adGroup = new AdSigGroup(tsk.TskId, DateTime.Now.ClearMillisecond()); OnAdSigGroupStart(new AdSigGroupStartEventArgs(adGroup)); allSig.ForEach(sig => { var sigAdResult = WrapSigAdResult(tsk, adGroup, adCard, sig, adcResult); if (sigAdResult != null) adGroup.GroupSigList.Add(sigAdResult); }); adGroup.GroupSigList.CompleteAdding(); }, token); } catch (Exception ex) { ex.HandleCancelEx(m => { IpsLogger.Error($"任务【{tsk.TskName}】,执行采集异常",m); }); } } } }