using Newtonsoft.Json; using OfficeOpenXml.FormulaParsing.Excel.Functions.Information; using Org.BouncyCastle.Tls; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Caches; using WIDESEA_Core.DB; using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_Core.Log; using WIDESEA_DTO.System; using WIDESEA_ISystemRepository; using WIDESEA_ISystemService; using WIDESEA_Model.Models; using WIDESEA_SystemService.Scheduler; namespace WIDESEA_SystemService { public class Sys_JobService : ServiceBase, ISys_JobService { private readonly IUnitOfWorkManage _unitOfWorkManage; private readonly ICacheService _cacheService; SchedulerCenter scheduler = new SchedulerCenter(); public Sys_JobService(ISys_JobRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManage; _cacheService = cacheService; } public WebResponseContent StartServe() { WebResponseContent webResponse = new WebResponseContent(); try { if (!scheduler.IsRun()) { var startRes = SrartScheduler(); if (startRes.Status) { return webResponse.OK("服务启动成功!"); } else { //调度启动失败,关闭全部 WriteLog.Write_Log("服务", "服务", "启动服务\n[调度异常]" + startRes.Message); return startRes; } } else { return webResponse.Error("请勿重复启动!"); } } catch (Exception ex) { WriteLog.Write_Log("服务", "服务", "启动服务\n[异常]" + ex.Message); return webResponse.Error($"异常,{ex.Message}"); } } /// /// 启动调度 /// private WebResponseContent SrartScheduler() { WebResponseContent webResponse = new WebResponseContent(); var jobs = BaseDal.QueryData(); try { foreach (var job in jobs) { scheduler.AddJob(job); } scheduler.Start(); } catch (Exception ex) { return webResponse.Error(ex.Message); } Console.WriteLine("服务启动成功!"); return webResponse.OK(); } public WebResponseContent CloseServe() { WebResponseContent webResponse = new WebResponseContent(); try { scheduler.Shutdown(); Console.WriteLine("服务关闭成功!"); WriteLog.Write_Log("服务", "服务", "服务关闭成功!"); } catch (Exception ex) { WriteLog.Write_Log("服务", "服务", "关闭服务\n[异常]" + ex.Message); } return webResponse.OK("服务关闭成功!"); } } }