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