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("api/[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;
|
}
|
|
/// <summary>
|
/// 获取所有的作业
|
/// </summary>
|
/// <returns></returns>
|
[Route(template: "GetJobs")]
|
[HttpGet]
|
public async Task<IActionResult> GetJobs()
|
{
|
mes.code = "200";
|
mes.message = "查询成功!";
|
mes.data = await _schedulerFactory.GetJobs();
|
return Json(mes);
|
}
|
|
/// <summary>
|
/// 获取作业运行日志
|
/// </summary>
|
/// <param name="taskName"></param>
|
/// <param name="groupName"></param>
|
/// <param name="page"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 添加任务
|
/// </summary>
|
/// <param name="taskOptions"></param>
|
/// <returns></returns>
|
[Route(template: "Add")]
|
[HttpPost]
|
//[TaskAuthor]
|
public async Task<IActionResult> Add(TaskOptions taskOptions)
|
{
|
return Json(await taskOptions.AddJob(_schedulerFactory, jobFactory: _jobFactory));
|
}
|
|
/// <summary>
|
/// 删除任务
|
/// </summary>
|
/// <param name="taskOptions"></param>
|
/// <returns></returns>
|
[Route(template: "Remove")]
|
[HttpPost]
|
//[TaskAuthor]
|
public async Task<IActionResult> Remove(TaskOptions taskOptions)
|
{
|
return Json(await _schedulerFactory.Remove(taskOptions));
|
}
|
|
/// <summary>
|
/// 修改任务
|
/// </summary>
|
/// <param name="taskOptions"></param>
|
/// <returns></returns>
|
[Route(template: "Update")]
|
[HttpPost]
|
//[TaskAuthor]
|
public async Task<IActionResult> Update(TaskOptions taskOptions)
|
{
|
return Json(await _schedulerFactory.Update(taskOptions));
|
}
|
|
/// <summary>
|
/// 暂停任务
|
/// </summary>
|
/// <param name="taskOptions"></param>
|
/// <returns></returns>
|
[Route(template: "Pause")]
|
[HttpPost]
|
//[TaskAuthor]
|
public async Task<IActionResult> Pause(TaskOptions taskOptions)
|
{
|
return Json(await _schedulerFactory.Pause(taskOptions));
|
}
|
|
/// <summary>
|
/// 开启任务
|
/// </summary>
|
/// <param name="taskOptions"></param>
|
/// <returns></returns>
|
[Route(template: "Start")]
|
[HttpPost]
|
//[TaskAuthor]
|
public async Task<IActionResult> Start(TaskOptions taskOptions)
|
{
|
return Json(await _schedulerFactory.Start(taskOptions));
|
}
|
|
/// <summary>
|
/// 立即执行
|
/// </summary>
|
/// <param name="taskOptions"></param>
|
/// <returns></returns>
|
[Route(template: "Run")]
|
[HttpPost]
|
//[TaskAuthor]
|
public async Task<IActionResult> Run(TaskOptions taskOptions)
|
{
|
return Json(await _schedulerFactory.Run(taskOptions));
|
}
|
}
|
}
|