using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_QuartzJob;
|
using WIDESEAWCS_QuartzJob.DTO;
|
using WIDESEAWCS_QuartzJob.QuartzNet;
|
|
namespace WIDESEAWCS_Server.Controllers.QuartzJob
|
{
|
[Route("api/Scheduler")]
|
[ApiController]
|
public class SchedulerController : ControllerBase
|
{
|
private readonly ISchedulerCenter _scheduler;
|
private readonly QuartzNetExtension _quartzNetExtension;
|
public SchedulerController(ISchedulerCenter scheduler, QuartzNetExtension quartzNetExtension)
|
{
|
_scheduler = scheduler;
|
_quartzNetExtension = quartzNetExtension;
|
}
|
|
[HttpGet, Route("StartSchedule"), AllowAnonymous]
|
public async Task<WebResponseContent> StartSchedule()
|
{
|
try
|
{
|
await _quartzNetExtension.StartAsync();
|
return WebResponseContent.Instance.OK("启动成功");
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error("启动错误:" + ex.Message);
|
}
|
}
|
|
[HttpGet, Route("StopSchedule"), AllowAnonymous]
|
public Task<WebResponseContent> StopSchedule()
|
{
|
return _scheduler.StopScheduleAsync();
|
}
|
|
/// <summary>
|
/// 暂停指定的计划任务
|
/// </summary>
|
/// <param name="sysSchedule"></param>
|
/// <returns></returns>
|
[HttpPost, Route("PauseJob"), AllowAnonymous]
|
public Task<WebResponseContent> PauseJob([FromBody] DispatchInfoDTO sysSchedule)
|
{
|
return _scheduler.PauseJob(sysSchedule);
|
}
|
|
/// <summary>
|
/// 恢复指定的计划任务
|
/// </summary>
|
/// <param name="sysSchedule"></param>
|
/// <returns></returns>
|
[HttpPost, Route("ResumeJob"), AllowAnonymous]
|
public Task<WebResponseContent> ResumeJob([FromBody] DispatchInfoDTO sysSchedule)
|
{
|
return _scheduler.ResumeJob(sysSchedule);
|
}
|
|
/// <summary>
|
/// 添加一个计划任务(映射程序集指定IJob实现类)
|
/// </summary>
|
/// <param name="sysSchedule"></param>
|
/// <returns></returns>
|
[HttpPost, Route("AddScheduleJob"), AllowAnonymous]
|
public Task<WebResponseContent> AddScheduleJob([FromBody] DispatchInfoDTO sysSchedule)
|
{
|
return _scheduler.AddScheduleJobAsync(sysSchedule);
|
}
|
|
/// <summary>
|
/// 立即执行 一个任务 执行一次
|
/// </summary>
|
/// <param name="sysSchedule"></param>
|
/// <returns></returns>
|
[HttpPost, Route("ExecuteJob"), AllowAnonymous]
|
public Task<WebResponseContent> ExecuteJob([FromBody] DispatchInfoDTO sysSchedule)
|
{
|
return _scheduler.ExecuteJobAsync(sysSchedule);
|
}
|
|
///// <summary>
|
///// 暂停所有计划任务
|
///// </summary>
|
///// <returns></returns>
|
//[HttpPost, Route("PauseAllJob"), AllowAnonymous]
|
//public Task<WebResponseContent> PauseAllJob()
|
//{
|
// return _scheduler.PauseAllJobAsync();
|
//}
|
|
///// <summary>
|
///// 恢复所有计划任务
|
///// </summary>
|
///// <returns></returns>
|
//[HttpPost, Route("ResumeAllJob"), AllowAnonymous]
|
//public Task<WebResponseContent> ResumeAllJob()
|
//{
|
// return _scheduler.ResumeAllJobAsync();
|
//}
|
|
[HttpPost, Route("DeleteScheduleJob"), AllowAnonymous]
|
public Task<WebResponseContent> DeleteScheduleJob([FromBody] DispatchInfoDTO sysSchedule)
|
{
|
return _scheduler.StopScheduleJobAsync(sysSchedule);
|
}
|
}
|
}
|