-
-
-
@@ -13,34 +14,34 @@
diff --git a/ZR.Vue/src/views/system/user/index.vue b/ZR.Vue/src/views/system/user/index.vue
index b9a205e..c5fcc82 100644
--- a/ZR.Vue/src/views/system/user/index.vue
+++ b/ZR.Vue/src/views/system/user/index.vue
@@ -41,14 +41,10 @@
鏂板
-
+
瀵煎叆
@@ -59,7 +55,6 @@
-
From 2bc336ebb2362e84d2df27816617e9c589285f46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com>
Date: Sun, 3 Apr 2022 13:00:30 +0800
Subject: [PATCH 10/10] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0http=E8=AF=B7=E6=B1=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/System/TasksController.cs | 34 ++++--
ZR.Model/System/Dto/TasksDto.cs | 11 +-
ZR.Model/System/SysTasksQz.cs | 8 ++
ZR.Tasks/JobFactory.cs | 6 +-
ZR.Tasks/TaskScheduler/Job_HttpRequest.cs | 33 ++++++
ZR.Vue/src/views/monitor/job/index.vue | 110 +++++++++++-------
document/admin-mysql.sql | 2 +
document/admin-sqlserver.sql | 2 +
8 files changed, 149 insertions(+), 57 deletions(-)
create mode 100644 ZR.Tasks/TaskScheduler/Job_HttpRequest.cs
diff --git a/ZR.Admin.WebApi/Controllers/System/TasksController.cs b/ZR.Admin.WebApi/Controllers/System/TasksController.cs
index 651ca6e..754eef6 100644
--- a/ZR.Admin.WebApi/Controllers/System/TasksController.cs
+++ b/ZR.Admin.WebApi/Controllers/System/TasksController.cs
@@ -15,6 +15,7 @@ using ZR.Model.System;
using ZR.Service.System.IService;
using ZR.Tasks;
using Snowflake.Core;
+using Infrastructure.Extensions;
namespace ZR.Admin.WebApi.Controllers
{
@@ -62,14 +63,14 @@ namespace ZR.Admin.WebApi.Controllers
///
/// 缂栫爜
///
- [HttpGet("{id}")]
+ [HttpGet("get")]
public IActionResult Get(string id)
{
if (!string.IsNullOrEmpty(id))
{
return SUCCESS(_tasksQzService.GetId(id));
}
- return SUCCESS(_tasksQzService.GetAll());
+ return SUCCESS(null);
}
///
@@ -90,7 +91,10 @@ namespace ZR.Admin.WebApi.Controllers
{
throw new CustomException($"cron琛ㄨ揪寮忎笉姝g‘");
}
-
+ if (string.IsNullOrEmpty(parm.ApiUrl) && parm.TaskType == 2)
+ {
+ throw new CustomException($"鍦板潃涓嶈兘涓虹┖");
+ }
//浠 Dto 鏄犲皠鍒 瀹炰綋
var tasksQz = parm.Adapt().ToCreate();
var worker = new IdWorker(1, 1);
@@ -98,7 +102,13 @@ namespace ZR.Admin.WebApi.Controllers
tasksQz.ID = worker.NextId().ToString();
tasksQz.IsStart = false;
tasksQz.Create_by = HttpContext.GetName();
-
+ tasksQz.TaskType = parm.TaskType;
+ tasksQz.ApiUrl = parm.ApiUrl;
+ if (parm.ApiUrl.IfNotEmpty() && parm.TaskType == 2)
+ {
+ tasksQz.AssemblyName = "ZR.Tasks";
+ tasksQz.ClassName = "TaskScheduler.HttpResultfulJob";
+ }
return SUCCESS(_tasksQzService.Add(tasksQz));
}
@@ -125,7 +135,15 @@ namespace ZR.Admin.WebApi.Controllers
throw new CustomException($"cron琛ㄨ揪寮忎笉姝g‘");
}
var tasksQz = _tasksQzService.GetFirst(m => m.ID == parm.ID);
-
+ if (string.IsNullOrEmpty(parm.ApiUrl) && parm.TaskType == 2)
+ {
+ throw new CustomException($"api鍦板潃涓嶈兘涓虹┖");
+ }
+ if (parm.ApiUrl.IfNotEmpty() && parm.TaskType == 2)
+ {
+ parm.AssemblyName = "ZR.Tasks";
+ parm.ClassName = "TaskScheduler.HttpResultfulJob";
+ }
if (tasksQz.IsStart)
{
throw new CustomException($"璇ヤ换鍔℃鍦ㄨ繍琛屼腑锛岃鍏堝仠姝㈠湪鏇存柊");
@@ -142,10 +160,12 @@ namespace ZR.Admin.WebApi.Controllers
TriggerType = parm.TriggerType,
IntervalSecond = parm.IntervalSecond,
JobParams = parm.JobParams,
- Update_by = User.Identity.Name,
+ Update_by = HttpContextExtension.GetName(HttpContext),
Update_time = DateTime.Now,
BeginTime = parm.BeginTime,
- EndTime = parm.EndTime
+ EndTime = parm.EndTime,
+ TaskType = parm.TaskType,
+ ApiUrl = parm.ApiUrl,
});
if (response > 0)
{
diff --git a/ZR.Model/System/Dto/TasksDto.cs b/ZR.Model/System/Dto/TasksDto.cs
index 3fa3cdf..9b0d9a9 100644
--- a/ZR.Model/System/Dto/TasksDto.cs
+++ b/ZR.Model/System/Dto/TasksDto.cs
@@ -112,6 +112,11 @@ namespace ZR.Model.System.Dto
///
[Display(Name = "浼犲叆鍙傛暟")]
public string JobParams { get; set; }
+ public string ApiUrl { get; set; }
+ ///
+ /// 1銆佺▼搴忛泦浠诲姟 2銆乤piUrl浠诲姟
+ ///
+ public int TaskType { get; set; }
}
///
@@ -219,6 +224,10 @@ namespace ZR.Model.System.Dto
///
[Display(Name = "浼犲叆鍙傛暟")]
public string JobParams { get; set; }
+ public string ApiUrl { get; set; }
+ ///
+ /// 1銆佺▼搴忛泦浠诲姟 2銆乤piUrl浠诲姟
+ ///
+ public int TaskType { get; set; }
}
-
}
diff --git a/ZR.Model/System/SysTasksQz.cs b/ZR.Model/System/SysTasksQz.cs
index 58deb98..2827394 100644
--- a/ZR.Model/System/SysTasksQz.cs
+++ b/ZR.Model/System/SysTasksQz.cs
@@ -157,5 +157,13 @@ namespace ZR.Model.System
/// 鏈鍚庤繍琛屾椂闂
///
public DateTime? LastRunTime { get; set; }
+ ///
+ /// api鎵ц鍦板潃
+ ///
+ public string ApiUrl { get; set; }
+ ///
+ /// 浠诲姟绫诲瀷 1绋嬪簭闆2缃戠粶璇锋眰
+ ///
+ public int TaskType { get; set; }
}
}
diff --git a/ZR.Tasks/JobFactory.cs b/ZR.Tasks/JobFactory.cs
index 13e3d50..1317ee3 100644
--- a/ZR.Tasks/JobFactory.cs
+++ b/ZR.Tasks/JobFactory.cs
@@ -7,7 +7,7 @@ namespace ZR.Tasks
{
public class JobFactory : IJobFactory
{
- private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
+ private readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
///
/// 娉ㄥ叆鍙嶅皠鑾峰彇渚濊禆瀵硅薄
@@ -42,12 +42,10 @@ namespace ZR.Tasks
public void ReturnJob(IJob job)
{
- var disposable = job as IDisposable;
- if (disposable != null)
+ if (job is IDisposable disposable)
{
disposable.Dispose();
}
-
}
}
}
diff --git a/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs b/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs
new file mode 100644
index 0000000..b65a9ad
--- /dev/null
+++ b/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs
@@ -0,0 +1,33 @@
+锘縰sing Infrastructure;
+using Infrastructure.Attribute;
+using Quartz;
+using Quartz.Impl;
+using Quartz.Impl.Triggers;
+using System.Threading.Tasks;
+using ZR.Service.System.IService;
+
+namespace ZR.Tasks.TaskScheduler
+{
+ [AppService(ServiceType = typeof(Job_HttpRequest), ServiceLifetime = LifeTime.Scoped)]
+ internal class Job_HttpRequest : JobBase, IJob
+ {
+ private readonly ISysTasksQzService tasksQzService;
+
+ public Job_HttpRequest(ISysTasksQzService tasksQzService)
+ {
+ this.tasksQzService = tasksQzService;
+ }
+ public async Task Execute(IJobExecutionContext context)
+ {
+ await ExecuteJob(context, async () => await Run(context));
+ }
+ public async Task Run(IJobExecutionContext context)
+ {
+ AbstractTrigger trigger = (context as JobExecutionContextImpl).Trigger as AbstractTrigger;
+ var info = await tasksQzService.GetByIdAsync(trigger.Name);
+
+ var result = await HttpHelper.HttpPostAsync("http://" + info.ApiUrl, info.JobParams);
+ //Console.WriteLine(result);
+ }
+ }
+}
diff --git a/ZR.Vue/src/views/monitor/job/index.vue b/ZR.Vue/src/views/monitor/job/index.vue
index d24036b..f08e1b8 100644
--- a/ZR.Vue/src/views/monitor/job/index.vue
+++ b/ZR.Vue/src/views/monitor/job/index.vue
@@ -77,46 +77,71 @@
-
+
{{form.id}}
-
+
-
+
-
+
-
-
-
+
+
+
+ 鎵ц绋嬪簭闆
+ 鎵цurl
+
-
-
-
+
+
+
+
+ Http://
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 浼犲叆鍙傛暟
+
-
+