AdStWorker.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using Ips.AdcAlgorithm;
  2. using Ips.Library.Basic;
  3. using Ips.Library.Entity;
  4. using Ips.Sps.Scheduling.Entities;
  5. using Ips.Sps.TskResults.Pases;
  6. using Ips.Sps.Tsks;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace Ips.Sps.Scheduling.SigAds
  13. {
  14. public class AdStWorker : AdWorkerBase
  15. {
  16. public AdStWorker(RunTsk context) : base(context)
  17. {
  18. }
  19. public override void Execute(CancellationToken token)
  20. {
  21. var adCard = CurrentTsk.AdCard;
  22. var sigList = CurrentTsk.RefSigList.Concat(CurrentTsk.TarSigList);
  23. var adGroup = new AdSigGroup(CurrentTsk.TskId, DateTime.Now.ClearMillisecond());
  24. try
  25. {
  26. foreach (var sig in sigList)
  27. {
  28. OnAdSigGroupStart(new AdSigGroupStartEventArgs(adGroup));
  29. var adcRes = ExecuteAdc(adCard, sig, token);
  30. var sigRes = WrapSigAdResult(CurrentTsk, adGroup, adCard, sig, adcRes.Result);
  31. if (sigRes != null)
  32. adGroup.GroupSigList.Add(sigRes);
  33. }
  34. }
  35. catch (Exception ex)
  36. {
  37. ex.HandleCancelEx(m =>
  38. {
  39. IpsLogger.Error($"任务【{CurrentTsk.TskName}】,执行采集异常",m);
  40. });
  41. }
  42. finally
  43. {
  44. adGroup.GroupSigList.CompleteAdding();
  45. }
  46. }
  47. }
  48. }