using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Quartz; namespace SlnMesnac.Controllers { /// /// 任务调度 /// [ApiController] [Route("api/[controller]")] public class QuartzJobController { private readonly IScheduler _scheduler; /// /// /// /// public QuartzJobController(IScheduler scheduler) { _scheduler = scheduler; } /// /// 启动任务 /// /// 任务名称 /// 任务分组 /// [HttpPost("start")] public async Task StartJob(string jobName, string groupName) { // 检查调度器是否已经启动 if (!_scheduler.IsStarted) { await _scheduler.Start(); } var myJobKey = new JobKey(jobName, groupName); await _scheduler.ResumeJob(myJobKey); return "Job started successfully."; } /// /// 停止任务 /// /// 任务名称 /// 任务分组 /// [HttpPost("stop")] public async Task StopJob(string jobName, string groupName) { var myJobKey = new JobKey(jobName, groupName); await _scheduler.PauseJob(myJobKey); return "Job stopped successfully."; } } }