服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-10-25 7febfae83ccb8c1d927a817145fc9c99d173f222
Tiger.Business/Services/Base/InterfaceService.cs
@@ -1,10 +1,10 @@
using Apache.NMS.ActiveMQ.Threads;
using FluentScheduler;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Rhea.Common;
using SqlSugar;
using Sundial;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -15,7 +15,6 @@
using Tiger.IBusiness;
using Tiger.Model;
using Tiger.Model.Minsun;
using static System.Collections.Specialized.BitVector32;
namespace Tiger.Business
{
@@ -24,12 +23,12 @@
    /// </summary>
    public class InterfaceService: IInterfaceService
    {
        public ISchedulerFactory _schedulerFactory { get; set; }
        public Sundial.ISchedulerFactory _schedulerFactory { get; set; }
        /// <summary>
        /// 设置计划任务工厂类
        /// </summary>
        /// <param name="schedulerFactory"></param>
        public void SetSchedulerFactory(ISchedulerFactory schedulerFactory)
        public void SetSchedulerFactory(Sundial.ISchedulerFactory schedulerFactory)
        {
            _schedulerFactory = schedulerFactory;
        }
@@ -40,10 +39,10 @@
        /// <typeparam name="TJob"></typeparam>
        /// <param name="newEntity"></param>
        /// <param name="jobParam"></param>
        public ApiAction AddJob<TJob>(TJob newEntity, TskJobParam jobParam) where TJob : class, IJob
        public ApiAction AddJob<TJob>(TJob newEntity, TskJobParam jobParam) where TJob : class, Sundial.IJob
        {
            ApiAction apiAction = new();
            TriggerBuilder triggerBuilder = Triggers.Period(jobParam.Period * 60 * 1000).LoadFrom(new
            Sundial.TriggerBuilder triggerBuilder = Sundial.Triggers.Period(jobParam.Period * 60 * 1000).LoadFrom(new
            {
                TriggerId = jobParam.JobName + "_trigger1",
            });
@@ -57,7 +56,7 @@
        /// <typeparam name="TJob"></typeparam>
        /// <param name="jobname"></param>
        /// <param name="triggerBuilders"></param>
        public ApiAction AddJob<TJob>(string jobname, params TriggerBuilder[] triggerBuilders) where TJob : class, IJob
        public ApiAction AddJob<TJob>(string jobname, params Sundial.TriggerBuilder[] triggerBuilders) where TJob : class, Sundial.IJob
        {
            ApiAction apiAction = new();
            triggerBuilders[0].LoadFrom(new
@@ -77,9 +76,9 @@
        public ApiAction UpdateJob(TSK_JOB job)
        {
            ApiAction apiAction = new ApiAction();
            IScheduler scheduler = GetJob(job.JobName);
            Sundial.IScheduler scheduler = GetJob(job.JobName);
            var trigger = scheduler.GetTrigger($"{job.JobName}_trigger1");
            if (trigger.Status == TriggerStatus.Running)
            if (trigger.Status == Sundial.TriggerStatus.Running)
            {
                apiAction.IsSuccessed = false;
                apiAction.Message = $"作业[{job.JobName}]正在运行不能编辑";
@@ -114,7 +113,7 @@
        public void StartJob(string jobname)
        {
            // 带返回值
            IScheduler scheduler;
            Sundial.IScheduler scheduler;
            var scheduleResult = _schedulerFactory.TryRunJob(jobname, out scheduler);
        }
@@ -123,9 +122,9 @@
        /// </summary>
        /// <param name="jobname"></param>
        /// <returns></returns>
        public IScheduler GetJob(string jobname)
        public Sundial.IScheduler GetJob(string jobname)
        {
            IScheduler scheduler;
            Sundial.IScheduler scheduler;
            var scheduleResult = _schedulerFactory.TryGetJob(jobname, out scheduler);
            return scheduler;
        }
@@ -134,7 +133,7 @@
        /// 获取所有作业
        /// </summary>
        /// <returns></returns>
        public List<IScheduler> GetJobs()
        public List<Sundial.IScheduler> GetJobs()
        {
            return _schedulerFactory.GetJobs().ToList();
        }
@@ -171,5 +170,10 @@
        {
            ;
        }
        public void JobInitialize()
        {
            JobManager.Initialize();
        }
    }
}