DdcKeepWorker.cs 1.5 KB

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