using Microsoft.AspNetCore.Mvc; using Quartz; using Quartz.Spi; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using VueWebCoreApi.Extensions; using VueWebCoreApi.Quartz; using VueWebCoreApi.Tools; namespace VueWebCoreApi.Controllers { [ApiExplorerSettings(GroupName = "周期任务")] [ApiController] [Route("base/[controller]")] public class TaskBackGroundController : Controller { //定义全局信息返回变量 ToMessage mes = new ToMessage(); private readonly ISchedulerFactory _schedulerFactory; private readonly IJobFactory _jobFactory; public TaskBackGroundController(ISchedulerFactory schedulerFactory, IJobFactory jobFactory) { this._jobFactory = jobFactory; this._schedulerFactory = schedulerFactory; } /// /// 获取所有的作业 /// /// [Route(template: "GetJobs")] [HttpGet] public async Task GetJobs() { mes.code = "200"; mes.Message = "查询成功!"; mes.data = await _schedulerFactory.GetJobs(); return Json(mes); } /// /// 获取作业运行日志 /// /// /// /// /// [Route(template: "GetRunLog")] [HttpGet] public IActionResult GetRunLog(string taskName, string groupName, int page = 1) { mes.code = "200"; mes.data = FileQuartz.GetJobRunLog(taskName, groupName, page); return Json(mes); } /// /// 添加任务 /// /// /// [Route(template: "Add")] [HttpPost] //[TaskAuthor] public async Task Add(TaskOptions taskOptions) { return Json(await taskOptions.AddJob(_schedulerFactory, jobFactory: _jobFactory)); } /// /// 删除任务 /// /// /// [Route(template: "Remove")] [HttpPost] //[TaskAuthor] public async Task Remove(TaskOptions taskOptions) { return Json(await _schedulerFactory.Remove(taskOptions)); } /// /// 修改任务 /// /// /// [Route(template: "Update")] [HttpPost] //[TaskAuthor] public async Task Update(TaskOptions taskOptions) { return Json(await _schedulerFactory.Update(taskOptions)); } /// /// 暂停任务 /// /// /// [Route(template: "Pause")] [HttpPost] //[TaskAuthor] public async Task Pause(TaskOptions taskOptions) { return Json(await _schedulerFactory.Pause(taskOptions)); } /// /// 开启任务 /// /// /// [Route(template: "Start")] [HttpPost] //[TaskAuthor] public async Task Start(TaskOptions taskOptions) { return Json(await _schedulerFactory.Start(taskOptions)); } /// /// 立即执行 /// /// /// [Route(template: "Run")] [HttpPost] //[TaskAuthor] public async Task Run(TaskOptions taskOptions) { return Json(await _schedulerFactory.Run(taskOptions)); } } }