mirror of
https://github.com/anjoy8/Blog.Core.git
synced 2024-09-20 23:48:27 +08:00
添加 任务 立即执行 的功能
This commit is contained in:
parent
eb08af94b3
commit
c1715afcb0
|
@ -501,6 +501,28 @@ namespace Blog.Core.Controllers
|
|||
var implementTypes = types.Where(x => x.IsClass).Select(item => new QuartzReflectionViewModel { nameSpace = item.Namespace, nameClass = item.Name, remark = "" }).ToList();
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user