From 4b6241e0b042e2324a9749e2959b2e233ab56806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Sat, 22 Apr 2023 19:13:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=E5=9F=BA=E7=A1=80=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Rbac/Services/ITaskService.cs | 12 ++++ .../Rbac/Services/Impl/TaskService.cs | 72 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/ITaskService.cs create mode 100644 Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs diff --git a/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/ITaskService.cs b/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/ITaskService.cs new file mode 100644 index 00000000..d0faa8f9 --- /dev/null +++ b/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/ITaskService.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Furion.Application.Rbac.Services +{ + public interface ITaskService + { + } +} diff --git a/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs b/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs new file mode 100644 index 00000000..e20a600f --- /dev/null +++ b/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Furion.Schedule; +using Furion.TimeCrontab; +using Yi.Framework.Infrastructure.Ddd.Services; + +namespace Yi.Furion.Application.Rbac.Services.Impl +{ + public class TaskService : ApplicationService, ITaskService, IDynamicApiController, ITransient + { + private readonly ISchedulerFactory _schedulerFactory; + public TaskService(ISchedulerFactory schedulerFactory) + { + _schedulerFactory = schedulerFactory; + } + public object GetById(string jobId) + { + var result = _schedulerFactory.TryGetJob(jobId, out var scheduler); + return scheduler.GetModel(); + } + public object Get() + { + return _schedulerFactory.GetJobsOfModels(); + } + public object Create() + { + //jobBuilder + var jobBuilder = JobBuilder.Create("YourProject", "YourProject.MyJob"); + + //triggerBuilder + //毫秒 + var triggerBuilder = Triggers.Period(5000); + //cron + var triggerBuilder2 = Triggers.Cron("* * * * *", CronStringFormat.Default); + + //作业计划,单个jobBuilder与多个triggerBuilder组合 + var schedulerBuilder = SchedulerBuilder.Create(jobBuilder, triggerBuilder, triggerBuilder2); + + + //调度中心工厂,使用作业计划管理job,返回调度中心单个 + var result = _schedulerFactory.TryAddJob(schedulerBuilder, out var scheduler); + + return result; + } + public object Remove(string jobId) + { + var res = _schedulerFactory.TryRemoveJob(jobId, out var scheduler); + return res; + } + public object Update() + { + //jobBuilder + var jobBuilder = JobBuilder.Create("YourProject", "YourProject.MyJob"); + + //triggerBuilder + //毫秒 + var triggerBuilder = Triggers.Period(5000); + //cron + var triggerBuilder2 = Triggers.Cron("* * * * *", CronStringFormat.Default); + + //作业计划,单个jobBuilder与多个triggerBuilder组合 + var schedulerBuilder = SchedulerBuilder.Create(jobBuilder, triggerBuilder, triggerBuilder2); + + + var result = _schedulerFactory.TryUpdateJob(schedulerBuilder, out var scheduler); + return result; + } + } +}