| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using Ips.Library.Basic;
- using Ips.Library.DxpLib;
- using Ips.Sps.Scheduling.Entities;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ips.Sps.Scheduling.SigAds
- {
- public class AdcSctWorker : AdWorkerBase
- {
- public AdcSctWorker(RunTsk Tsk) : base(Tsk)
- {
- }
- private DateTime _prevAdRefTime = DateTime.MinValue;
- public override void Execute(CancellationToken token)
- {
- var tsk = CurrentTsk;
- var adc = CurrentTsk.AdCard;
- foreach (var tarSig in tsk.TarSigList)
- {
- var adFreq = tarSig.FreqStart;
- do
- {
- for (int i = 0; i < ToolConfig.GetAppSetting("ScoutAdTimes").To(3); i++)
- {
- var groupTime = DateTime.Now.ClearMillisecond();
- var adGroup = new AdSigGroup(tsk.TskId, groupTime);
- OnAdSigGroupStart(new AdSigGroupStartEventArgs(adGroup));
- try
- {
- token.ThrowIfCancellationRequested();
- if ((DateTime.Now - _prevAdRefTime).Minutes > 5)
- {
- foreach (var refSig in tsk.RefSigList)
- {
- token.ThrowIfCancellationRequested();
- var refAdRes = ExecuteAdc(adc, refSig, token);
- var refSigRes = WrapSigAdResult(tsk, adGroup, adc, refSig, refAdRes.Result);
- if (refSigRes != null)
- adGroup.GroupSigList.Add(refSigRes);
- }
- _prevAdRefTime = DateTime.Now;
- }
- var adSig = tarSig.Copy();
- adSig.SigFreq = adFreq;
- var adcResult = ExecuteAdc(adc, adSig, token);
- var sigAdResult = WrapSigAdResult(tsk, adGroup, adc, adSig, adcResult.Result);
- if (sigAdResult != null)
- adGroup.GroupSigList.Add(sigAdResult);
- }
- catch (Exception ex)
- {
- ex.HandleCancelEx(m =>
- {
- IpsLogger.Error($"任务【{tsk.TskName}】,执行采集异常",m);
- });
- }
- finally
- {
- adGroup.GroupSigList.CompleteAdding();
- }
- }
- adFreq += tarSig.FreqStep;
- } while (adFreq <= tarSig.FreqEnd);
- }
- }
- }
- }
|