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.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; } - ); } }