using Microsoft.AspNetCore.Mvc; using StackExchange.Profiling; using zzz.Model; using zzz.Model.Entity; using zzz.Repository; using zzz.Tasks; namespace zzz.Api.Controllers { /// /// 持续运行 /// [ApiController] [Route("api/[controller]/[action]")] public class ApiActiveController : Controller { private readonly ILogger _logger; private readonly IBaseRepository _tasksQzServices; private readonly ISchedulerCenter _schedulerCenter; /// /// 持续运行 /// /// /// /// public ApiActiveController( IBaseRepository tasksQzServices, ISchedulerCenter schedulerCenter, ILogger logger ) { _tasksQzServices = tasksQzServices; _schedulerCenter = schedulerCenter; _logger = logger; } /// /// 激活 /// [HttpGet] public string KeepActive() { using (MiniProfiler.Current.Step("获取成功后,开始处理最终数据")) { _logger.LogInformation("用workservice定时调用该Api,保持不被IIS自动回收"); return "成功调用Api接口"; } } /// /// 立即执行任务 /// /// /// [HttpGet] public async Task> ExecuteJob(int jobId) { var data = new MessageModel(); var model = await _tasksQzServices.FirstOrDefaultByIdAsync(jobId); if (model != null) { return await _schedulerCenter.ExecuteJobAsync(model); } else { data.message = "任务不存在"; } return data; } } }