diff --git a/OpenAuth.App/ServiceApp/FlyTaskJob.cs b/OpenAuth.App/ServiceApp/FlyTaskJob.cs index 4bbb781..71e92c7 100644 --- a/OpenAuth.App/ServiceApp/FlyTaskJob.cs +++ b/OpenAuth.App/ServiceApp/FlyTaskJob.cs @@ -18,11 +18,16 @@ public class FlyTaskJob : IJob public Task Execute(IJobExecutionContext context) { var jobId = context.MergedJobDataMap.GetString(Define.JOBMAPKEY); + if (string.IsNullOrEmpty(jobId)) + { + return Task.CompletedTask; + } var job = _openJobApp.Get(jobId); if (job == null) return Task.CompletedTask; var param = JsonConvert.DeserializeObject(job.JobCallParams); var taskId = (string)param.taskId; _ = _manageApp.ExecuteFlyTask(taskId); + _openJobApp.Delete(jobId.Select(c => c.ToString()).ToArray()); return Task.CompletedTask; } } \ No newline at end of file diff --git a/OpenAuth.App/ServiceApp/ManageApp.cs b/OpenAuth.App/ServiceApp/ManageApp.cs index 2d3dc28..774127a 100644 --- a/OpenAuth.App/ServiceApp/ManageApp.cs +++ b/OpenAuth.App/ServiceApp/ManageApp.cs @@ -839,13 +839,29 @@ namespace OpenAuth.App.ServiceApp } #endregion - - // todo 保存任务时,执行任务 - + public async Task ExecuteFlyTask(string taskId) { // 任务信息 var task = await Repository.ChangeRepository>().GetByIdAsync(taskId); + // 如果任务被挂起,则直接失败 + if (task.Status == 3) + { + var taskUpdate = new LasaTask + { + Id = taskId, + //任务因挂起失败 + Status = 2, + Reason = "任务因挂起执行失败" + }; + await Repository + .ChangeRepository>() + .AsUpdateable(taskUpdate) + .IgnoreNullColumns() + .ExecuteCommandAsync(); + return; + } + // 航线文件信息 var airLine = await Repository.ChangeRepository>() .GetByIdAsync(task.AirLineId);