添加 任务 立即执行 的功能

This commit is contained in:
斌 杨 2021-05-21 15:20:32 +08:00
parent eb08af94b3
commit c1715afcb0
3 changed files with 73 additions and 0 deletions

View File

@ -502,5 +502,27 @@ namespace Blog.Core.Controllers
return MessageModel<List<QuartzReflectionViewModel>>.Success("获取成功", implementTypes);
}
/// <summary>
/// 立即执行任务
/// </summary>
/// <param name="jobId"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<string>> ExecuteJob(string jobId)
{
var data = new MessageModel<string>();
var model = await _tasksQzServices.QueryById(jobId);
if (model != null)
{
return await _schedulerCenter.ExecuteJobAsync(model);
}
else
{
data.msg = "任务不存在";
}
return data;
}
}
}

View File

@ -66,6 +66,13 @@ namespace Blog.Core.Tasks
/// <returns></returns>
string GetTriggerState(string key);
/// <summary>
/// 立即执行 一个任务
/// </summary>
/// <param name="tasksQz"></param>
/// <returns></returns>
Task<MessageModel<string>> ExecuteJobAsync(TasksQz tasksQz);
}
}

View File

@ -443,5 +443,49 @@ namespace Blog.Core.Tasks
}
#endregion
/// <summary>
/// 立即执行 一个任务
/// </summary>
/// <param name="tasksQz"></param>
/// <returns></returns>
public async Task<MessageModel<string>> ExecuteJobAsync(TasksQz tasksQz)
{
var result = new MessageModel<string>();
try
{
JobKey jobKey = new JobKey(tasksQz.Id, tasksQz.JobGroup);
//判断任务是否存在,存在则 触发一次,不存在则先添加一个任务,触发以后再 停止任务
if (!await _scheduler.Result.CheckExists(jobKey))
{
//不存在 则 添加一个计划任务
await AddScheduleJobAsync(tasksQz);
//触发执行一次
await _scheduler.Result.TriggerJob(jobKey);
//停止任务
await StopScheduleJobAsync(tasksQz);
result.success = true;
result.msg = $"立即执行计划任务:【{tasksQz.Name}】成功";
}
else
{
await _scheduler.Result.TriggerJob(jobKey);
result.success = true;
result.msg = $"立即执行计划任务:【{tasksQz.Name}】成功";
}
}
catch (Exception ex)
{
result.msg = $"立即执行计划任务失败:【{ex.Message}】";
}
return result;
}
}
}