DdcWorker.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. using Ips.Library.Entity;
  9. using Ips.Library.LocLib;
  10. namespace Ips.Sps.Scheduling.SigAds
  11. {
  12. public class DdcWorker : AdWorkerBase
  13. {
  14. public DdcWorker(RunTsk context) : base(context)
  15. {
  16. }
  17. public override void Execute(CancellationToken token)
  18. {
  19. var tsk = CurrentTsk;
  20. var adCard = CurrentTsk.AdCard;
  21. var allSig = tsk.RefSigList.Concat(tsk.TarSigList).ToList();
  22. var dxSig = tsk.DxSigList.ToList();
  23. var adGroup = new AdSigGroup(tsk.TskId, DateTime.Now.ClearMillisecond());
  24. OnAdSigGroupStart(new AdSigGroupStartEventArgs(adGroup));
  25. try
  26. {
  27. var adcResult = ExecuteDdc(adCard, allSig, dxSig, false, null, token);
  28. allSig.ForEach(sig =>
  29. {
  30. var sigAdResult = WrapSigAdResult(tsk, adGroup, adCard, sig, adcResult.Result);
  31. if (sigAdResult != null)
  32. adGroup.GroupSigList.Add(sigAdResult);
  33. });
  34. }
  35. catch (Exception ex)
  36. {
  37. ex.HandleCancelEx(m =>
  38. {
  39. IpsLogger.Error($"任务【{tsk.TskName}】,执行采集异常",m);
  40. });
  41. }
  42. finally
  43. {
  44. adGroup.GroupSigList.CompleteAdding();
  45. }
  46. }
  47. }
  48. }