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<Sys_Job, ISys_JobRepository>, 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}");
|
}
|
|
}
|
|
/// <summary>
|
/// 启动调度
|
/// </summary>
|
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("服务关闭成功!");
|
}
|
}
|
}
|