using Furion.JsonSerialization; using Microsoft.CodeAnalysis; using Newtonsoft.Json; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using Quartz; using System; using System.Collections.Generic; using System.IO; using System.Runtime.Serialization.Json; using System.Security.Policy; using System.Text; using System.Threading; using System.Threading.Tasks; using WIDESEA_Common.Tools; using WIDESEA_Entity.DomainModels.Equipment; using WIDESEA_Services.Services; using WIDESEA_WCS.Jobs; using WIDESEA_WCS.JobsPart.AGV; using WIDESEA_WCS.SchedulerExecute.AGV; using WIDESEA_WCS.WCSClient; using static FreeSql.Internal.GlobalFilter; namespace WIDESEA_WCS { /// /// AGV调度 /// [DisallowConcurrentExecution] public class AGVUpdateStatusJob : JobBase, IJob { private static int lockObj1 = 0; public Task Execute(IJobExecutionContext context) { try { ExecuteJob(context, DoAction); } catch { } return Task.FromResult(string.Empty); } private void DoAction(IJobExecutionContext context) { if (lockObj1 == 0) { try { lockObj1 = 1; Task task = Task.Run(() => { List AGVS = new List { "组装AGV调度", "正极AGV调度", "负极AGV调度" }; while (true) { foreach (var item in AGVS) { PLCClient pLCClient = WCSService.Clients.Find(v => v.PLCName == item); if (pLCClient == null) { continue; } AGVSchedulerExecute.UpdateAgvTaskText(pLCClient); } Thread.Sleep(200); } }); } catch (Exception ex) { lockObj1 = 0; throw new Exception(ex.Message); } } } } }