using Quartz; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using WIDESEA_Common.Tools; using WIDESEA_Core.Utilities; using WIDESEA_WCS.Jobs; using WIDESEA_WCS.SchedulerExecute.AGV; using WIDESEA_WCS.WCSClient; namespace WIDESEA_WCS { [DisallowConcurrentExecution] public class AGVJob : JobBase, IJob { public Task Execute(IJobExecutionContext context) { try { List AGVS = new List { "正极1号AGV", "正极2号AGV", "负极1号AGV", "负极2号AGV" }; foreach (var item in AGVS) { PLCClient client = WCSService.Clients.Find(v => v.PLCName == item); AGVSchedulerExecute.SendAGVTask1(client);//发送AGV任务 AGVSchedulerExecute.UpdateState(client);//更新AGV任务 } //var executeLog = ExecuteJob(context, () => Run(context)); } catch (Exception ex) { WriteLog.Info("SendAGVTask").Write(ex.Message.ToString() + DateTime.Now, "SendAGVTask"); } return Task.FromResult(string.Empty); } public string Run(IJobExecutionContext context) { JobDataMap data = context.JobDetail.JobDataMap; PLCClient client = data.Get("JobParams") as PLCClient; AGVSchedulerExecute.SendAGVTask1(client); AGVSchedulerExecute.UpdateState(client); return ""; } } }