duyongjia
2024-12-14 1bdb5689ddf1560a312de9413ce1c26e5163627d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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("服务关闭成功!");
        }
    }
}