AdcWorker.cs 1.9 KB

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