1. 挂机任务执行处理逻辑

2. 完成的定时任务,删除定时记录
main
陈伟 2 months ago
parent 14bab088de
commit 60d9195460

@ -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<dynamic>(job.JobCallParams);
var taskId = (string)param.taskId;
_ = _manageApp.ExecuteFlyTask(taskId);
_openJobApp.Delete(jobId.Select(c => c.ToString()).ToArray());
return Task.CompletedTask;
}
}

@ -839,13 +839,29 @@ namespace OpenAuth.App.ServiceApp
}
#endregion
// todo 保存任务时,执行任务
public async Task ExecuteFlyTask(string taskId)
{
// 任务信息
var task = await Repository.ChangeRepository<SugarRepositiry<LasaTask>>().GetByIdAsync(taskId);
// 如果任务被挂起,则直接失败
if (task.Status == 3)
{
var taskUpdate = new LasaTask
{
Id = taskId,
//任务因挂起失败
Status = 2,
Reason = "任务因挂起执行失败"
};
await Repository
.ChangeRepository<SugarRepositiry<LasaTask>>()
.AsUpdateable(taskUpdate)
.IgnoreNullColumns()
.ExecuteCommandAsync();
return;
}
// 航线文件信息
var airLine = await Repository.ChangeRepository<SugarRepositiry<LasaAirLine>>()
.GetByIdAsync(task.AirLineId);

Loading…
Cancel
Save