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); } } }