| | |
| | | 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; |
| | |
| | | using Tiger.IBusiness; |
| | | using Tiger.Model; |
| | | using Tiger.Model.Minsun; |
| | | using static System.Collections.Specialized.BitVector32; |
| | | |
| | | namespace Tiger.Business |
| | | { |
| | |
| | | /// </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; |
| | | } |
| | |
| | | /// <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", |
| | | }); |
| | |
| | | /// <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 |
| | |
| | | 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}]正在运行不能编辑"; |
| | |
| | | public void StartJob(string jobname) |
| | | { |
| | | // 带返回值 |
| | | IScheduler scheduler; |
| | | Sundial.IScheduler scheduler; |
| | | var scheduleResult = _schedulerFactory.TryRunJob(jobname, out scheduler); |
| | | } |
| | | |
| | |
| | | /// </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; |
| | | } |
| | |
| | | /// 获取所有作业 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public List<IScheduler> GetJobs() |
| | | public List<Sundial.IScheduler> GetJobs() |
| | | { |
| | | return _schedulerFactory.GetJobs().ToList(); |
| | | } |
| | |
| | | { |
| | | ; |
| | | } |
| | | |
| | | public void JobInitialize() |
| | | { |
| | | JobManager.Initialize(); |
| | | } |
| | | } |
| | | } |