You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.1 KiB
74 lines
2.1 KiB
using Microsoft.AspNetCore.Mvc;
|
|
using StackExchange.Profiling;
|
|
using zzz.Model;
|
|
using zzz.Model.Entity;
|
|
using zzz.Repository;
|
|
using zzz.Tasks;
|
|
|
|
namespace zzz.Api.Controllers
|
|
{
|
|
/// <summary>
|
|
/// 持续运行
|
|
/// </summary>
|
|
[ApiController]
|
|
[Route("api/[controller]/[action]")]
|
|
public class ApiActiveController : Controller
|
|
{
|
|
private readonly ILogger<ApiActiveController> _logger;
|
|
private readonly IBaseRepository<TasksQz> _tasksQzServices;
|
|
private readonly ISchedulerCenter _schedulerCenter;
|
|
/// <summary>
|
|
/// 持续运行
|
|
/// </summary>
|
|
/// <param name="tasksQzServices"></param>
|
|
/// <param name="schedulerCenter"></param>
|
|
/// <param name="logger"></param>
|
|
public ApiActiveController(
|
|
IBaseRepository<TasksQz> tasksQzServices,
|
|
ISchedulerCenter schedulerCenter,
|
|
ILogger<ApiActiveController> logger
|
|
)
|
|
{
|
|
_tasksQzServices = tasksQzServices;
|
|
_schedulerCenter = schedulerCenter;
|
|
_logger = logger;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 激活
|
|
/// </summary>
|
|
[HttpGet]
|
|
public string KeepActive()
|
|
{
|
|
using (MiniProfiler.Current.Step("获取成功后,开始处理最终数据"))
|
|
{
|
|
_logger.LogInformation("用workservice定时调用该Api,保持不被IIS自动回收");
|
|
return "成功调用Api接口";
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 立即执行任务
|
|
/// </summary>
|
|
/// <param name="jobId"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<string>> ExecuteJob(int jobId)
|
|
{
|
|
var data = new MessageModel<string>();
|
|
|
|
var model = await _tasksQzServices.FirstOrDefaultByIdAsync(jobId);
|
|
if (model != null)
|
|
{
|
|
return await _schedulerCenter.ExecuteJobAsync(model);
|
|
}
|
|
else
|
|
{
|
|
data.message = "任务不存在";
|
|
}
|
|
return data;
|
|
}
|
|
|
|
}
|
|
}
|