using Ips.AdcAlgorithm; using Ips.Library.Basic; using Ips.Library.Entity; using Ips.Sps.Scheduling.Entities; using Ips.Sps.TskResults.Pases; using Ips.Sps.Tsks; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ips.Sps.Scheduling.SigAds { public class AdStWorker : AdWorkerBase { public AdStWorker(RunTsk context) : base(context) { } public override void Execute(CancellationToken token) { var adCard = CurrentTsk.AdCard; var sigList = CurrentTsk.RefSigList.Concat(CurrentTsk.TarSigList); var adGroup = new AdSigGroup(CurrentTsk.TskId, DateTime.Now.ClearMillisecond()); try { foreach (var sig in sigList) { OnAdSigGroupStart(new AdSigGroupStartEventArgs(adGroup)); var adcRes = ExecuteAdc(adCard, sig, token); var sigRes = WrapSigAdResult(CurrentTsk, adGroup, adCard, sig, adcRes.Result); if (sigRes != null) adGroup.GroupSigList.Add(sigRes); } } catch (Exception ex) { ex.HandleCancelEx(m => { IpsLogger.Error($"任务【{CurrentTsk.TskName}】,执行采集异常",m); }); } finally { adGroup.GroupSigList.CompleteAdding(); } } } }