From a32ef06c0af8a8c59a0d072ed6ce61a650636910 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Wed, 3 Nov 2021 18:14:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BB=BB=E5=8A=A1=E8=B0=83?= =?UTF-8?q?=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/FileController.cs | 8 +++++- .../Controllers/JobController.cs | 12 ++++++++- .../SwaggerDoc.xml | 17 +++++++++++-- .../wwwroot/Excel/Excel_20211102225436.xlsx | Bin 2958 -> 0 bytes .../wwwroot/Excel/Excel_20211102225553.xlsx | Bin 2958 -> 0 bytes .../Yi.Framework.Common/Const/JobConst.cs | 17 +++++++++++++ .../Helper/AssemblyHelper.cs | 3 ++- .../Models/{VisitModel.cs => JobModel.cs} | 2 +- .../Yi.Framework.Core/Quartz/QuartzInvoker.cs | 8 +++++- Yi.Framework/Yi.Framework.Task/HttpJob.cs | 23 +++++++++++++++--- Yi.Framework/Yi.Framework.Task/VisitJob.cs | 8 +++--- 11 files changed, 83 insertions(+), 15 deletions(-) delete mode 100644 Yi.Framework/Yi.Framework.ApiMicroservice/evn/wwwroot/Excel/Excel_20211102225436.xlsx delete mode 100644 Yi.Framework/Yi.Framework.ApiMicroservice/evn/wwwroot/Excel/Excel_20211102225553.xlsx create mode 100644 Yi.Framework/Yi.Framework.Common/Const/JobConst.cs rename Yi.Framework/Yi.Framework.Common/Models/{VisitModel.cs => JobModel.cs} (89%) diff --git a/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/FileController.cs b/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/FileController.cs index 196e37a9..63d8ab79 100644 --- a/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/FileController.cs +++ b/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/FileController.cs @@ -45,7 +45,12 @@ namespace Yi.Framework.ApiMicroservice.Controllers return new FileStreamResult(stream, MimeType); } - + /// + /// 该方法不对外暴露 + /// + /// + /// + /// private async Task Upload(string type,IFormFile file) { @@ -57,6 +62,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers return filename; } + [HttpGet] public async TaskExportFile() { diff --git a/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/JobController.cs b/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/JobController.cs index 3221d34a..6104d10a 100644 --- a/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/JobController.cs +++ b/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/JobController.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Yi.Framework.Common; +using Yi.Framework.Common.Const; using Yi.Framework.Common.Helper; using Yi.Framework.Common.Models; using Yi.Framework.Core; @@ -30,7 +31,16 @@ namespace Yi.Framework.ApiMicroservice.Controllers [HttpPost] public async Task startJob() { - await _quartzInvoker.start("*/1 * * * * ? ", new Quartz.JobKey("test", "my"), "VisitJob"); + //任务1 + //await _quartzInvoker.start("*/1 * * * * ? ", new Quartz.JobKey("test", "my"), "VisitJob"); + + //任务2 + Dictionary data = new Dictionary() + { + {JobConst.method,"get" }, + {JobConst.url,"https://www.baidu.com" } + }; + await _quartzInvoker.start("*/1 * * * * ? ", new Quartz.JobKey("test", "my"), "HttpJob",data: data); return Result.Success(); } diff --git a/Yi.Framework/Yi.Framework.ApiMicroservice/SwaggerDoc.xml b/Yi.Framework/Yi.Framework.ApiMicroservice/SwaggerDoc.xml index 9d315f5f..2efb0841 100644 --- a/Yi.Framework/Yi.Framework.ApiMicroservice/SwaggerDoc.xml +++ b/Yi.Framework/Yi.Framework.ApiMicroservice/SwaggerDoc.xml @@ -146,11 +146,24 @@ - + 用于给角色设置菜单的时候,点击一个角色,显示这个角色拥有的并列的菜单 - + + + + + + 查 + + + + + + 更 + + diff --git a/Yi.Framework/Yi.Framework.ApiMicroservice/evn/wwwroot/Excel/Excel_20211102225436.xlsx b/Yi.Framework/Yi.Framework.ApiMicroservice/evn/wwwroot/Excel/Excel_20211102225436.xlsx deleted file mode 100644 index 24bc5816916948488327d124875b7d7c31244d1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2958 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 diff --git a/Yi.Framework/Yi.Framework.Common/Const/JobConst.cs b/Yi.Framework/Yi.Framework.Common/Const/JobConst.cs new file mode 100644 index 00000000..ce81cb0a --- /dev/null +++ b/Yi.Framework/Yi.Framework.Common/Const/JobConst.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.Common.Const +{ + public class JobConst + { + + public const string url = nameof(url); + + public const string method = nameof(method); + } + +} diff --git a/Yi.Framework/Yi.Framework.Common/Helper/AssemblyHelper.cs b/Yi.Framework/Yi.Framework.Common/Helper/AssemblyHelper.cs index 895900db..ac95e268 100644 --- a/Yi.Framework/Yi.Framework.Common/Helper/AssemblyHelper.cs +++ b/Yi.Framework/Yi.Framework.Common/Helper/AssemblyHelper.cs @@ -13,7 +13,8 @@ namespace Yi.Framework.Common.Helper { Assembly assembly = Assembly.Load(assemblyFile); return assembly.GetTypes().Where(m => m.IsClass - && m.Name==null?true:m.Name==className + && className == null?true:m.Name==className + && spaceName == null ? true :m.Namespace == spaceName ).ToList(); } diff --git a/Yi.Framework/Yi.Framework.Common/Models/VisitModel.cs b/Yi.Framework/Yi.Framework.Common/Models/JobModel.cs similarity index 89% rename from Yi.Framework/Yi.Framework.Common/Models/VisitModel.cs rename to Yi.Framework/Yi.Framework.Common/Models/JobModel.cs index 03ed48f5..f831ee46 100644 --- a/Yi.Framework/Yi.Framework.Common/Models/VisitModel.cs +++ b/Yi.Framework/Yi.Framework.Common/Models/JobModel.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace Yi.Framework.Common.Models { - public class visitModel + public class JobModel { public static int visitNum { get; set; } = 0; } diff --git a/Yi.Framework/Yi.Framework.Core/Quartz/QuartzInvoker.cs b/Yi.Framework/Yi.Framework.Core/Quartz/QuartzInvoker.cs index e846a290..7943078b 100644 --- a/Yi.Framework/Yi.Framework.Core/Quartz/QuartzInvoker.cs +++ b/Yi.Framework/Yi.Framework.Core/Quartz/QuartzInvoker.cs @@ -34,8 +34,13 @@ namespace Yi.Framework.Core /// /// /// - public async Task start(string cron, JobKey jobKey, string jobClass, long second = 0) + public async Task start(string cron, JobKey jobKey, string jobClass, long second = 0, IDictionary data = null) { + if (data == null) + { + data = new Dictionary(); + } + var myClass = AssemblyHelper.GetClass("Yi.Framework.Job", jobClass).FirstOrDefault(); _scheduler = await _schedulerFactory.GetScheduler(); @@ -49,6 +54,7 @@ namespace Yi.Framework.Core .Build(); //创建任务 var jobDetail = JobBuilder.Create(myClass) + .UsingJobData(new JobDataMap(data)) .WithIdentity(jobKey.Name, jobKey.Group) .Build(); //将触发器和任务器绑定到调度器中 diff --git a/Yi.Framework/Yi.Framework.Task/HttpJob.cs b/Yi.Framework/Yi.Framework.Task/HttpJob.cs index a7763bf6..bb16da9e 100644 --- a/Yi.Framework/Yi.Framework.Task/HttpJob.cs +++ b/Yi.Framework/Yi.Framework.Task/HttpJob.cs @@ -5,13 +5,14 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Yi.Framework.Common.Models; namespace Yi.Framework.Job { public class HttpJob : IJob { - private ILogger _logger; - public HttpJob(ILogger logger) + private ILogger _logger; + public HttpJob(ILogger logger) { _logger = logger; } @@ -20,7 +21,23 @@ namespace Yi.Framework.Job { return Task.Run(() => { - + var jobData = context.JobDetail.JobDataMap; + string method= jobData[Common.Const.JobConst.method].ToString(); + string url = jobData[Common.Const.JobConst.url].ToString(); + string data="异常!"; + switch (method) + { + case "post": + data = Common.Helper.HttpHelper.HttpPost(url); + break; + case "get": + data = Common.Helper.HttpHelper.HttpGet(url); + break; + } + + + _logger.LogWarning("定时任务开始调度:" + nameof(HttpJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问地址为:{url},结果为:{data}"); + Console.WriteLine($"结果:{data}"); }); } } diff --git a/Yi.Framework/Yi.Framework.Task/VisitJob.cs b/Yi.Framework/Yi.Framework.Task/VisitJob.cs index 8c73e23e..2c95b7cf 100644 --- a/Yi.Framework/Yi.Framework.Task/VisitJob.cs +++ b/Yi.Framework/Yi.Framework.Task/VisitJob.cs @@ -31,13 +31,11 @@ namespace Yi.Framework.Job { return Task.Run(() => { - - _DBWrite.Set().Add(new visit() { num = visitModel.visitNum, time = DateTime.Now }); + _DBWrite.Set().Add(new visit() { num = JobModel.visitNum, time = DateTime.Now }); _DBWrite.SaveChanges(); - _logger.LogWarning("定时任务开始调度:" + nameof(VisitJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问总数为:{visitModel.visitNum}"); - visitModel.visitNum = 0; + _logger.LogWarning("定时任务开始调度:" + nameof(VisitJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问总数为:{JobModel.visitNum}"); + JobModel.visitNum = 0; } - ); } }