From d1720116dbb282b6f59fc112664c03f19a4a05c1 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: Mon, 5 Dec 2022 12:03:28 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=96=B0=E5=A2=9E=E7=BD=91?=
=?UTF-8?q?=E7=BB=9C=E8=AF=B7=E6=B1=82=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ZR.Model/System/Dto/TasksDto.cs | 5 +++++
ZR.Model/System/SysTasks.cs | 4 ++++
ZR.Tasks/TaskScheduler/Job_HttpRequest.cs | 27 ++++++++++++++++++-----
document/admin-mysql.sql | 23 ++++++++++---------
document/admin-sqlserver.sql | 5 +++--
5 files changed, 45 insertions(+), 19 deletions(-)
diff --git a/ZR.Model/System/Dto/TasksDto.cs b/ZR.Model/System/Dto/TasksDto.cs
index 65a0871..fb3a0b4 100644
--- a/ZR.Model/System/Dto/TasksDto.cs
+++ b/ZR.Model/System/Dto/TasksDto.cs
@@ -129,5 +129,10 @@ namespace ZR.Model.System.Dto
///
public int TaskType { get; set; }
public string SqlText { get; set; }
+
+ ///
+ /// 网络请求方式
+ ///
+ public string RequestMethod { get; set; }
}
}
diff --git a/ZR.Model/System/SysTasks.cs b/ZR.Model/System/SysTasks.cs
index 263307f..150ca66 100644
--- a/ZR.Model/System/SysTasks.cs
+++ b/ZR.Model/System/SysTasks.cs
@@ -169,5 +169,9 @@ namespace ZR.Model.System
/// SQL语句
///
public string SqlText { get; set; }
+ ///
+ /// 网络请求方式
+ ///
+ public string RequestMethod { get; set; }
}
}
diff --git a/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs b/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs
index c6a65df..e878a63 100644
--- a/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs
+++ b/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs
@@ -30,15 +30,30 @@ namespace ZR.Tasks.TaskScheduler
{
AbstractTrigger trigger = (context as JobExecutionContextImpl).Trigger as AbstractTrigger;
var info = await tasksQzService.GetByIdAsync(trigger.JobName);
- if (info != null)
- {
- var result = await HttpHelper.HttpGetAsync("http://" + info.ApiUrl);
- logger.Info($"任务【{info.Name}】网络请求执行结果=" + result);
- }
- else
+ if (info == null)
{
throw new CustomException($"任务{trigger?.JobName}网络请求执行失败,任务不存在");
}
+ string result;
+ if (info.RequestMethod != null && info.RequestMethod.Equals("POST", StringComparison.OrdinalIgnoreCase))
+ {
+ result = await HttpHelper.HttpPostAsync(info.ApiUrl, info.JobParams);
+ }
+ else
+ {
+ var url = info.ApiUrl;
+ if (url.IndexOf("?") > -1)
+ {
+ url += "&" + info.JobParams;
+ }
+ else
+ {
+ url += "?" + info.JobParams;
+ }
+ result = await HttpHelper.HttpGetAsync(url);
+ }
+
+ logger.Info($"任务【{info.Name}】网络请求执行结果=" + result);
}
}
}
diff --git a/document/admin-mysql.sql b/document/admin-mysql.sql
index 552ff20..aec8bad 100644
--- a/document/admin-mysql.sql
+++ b/document/admin-mysql.sql
@@ -7,17 +7,17 @@ SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
DROP TABLE IF EXISTS `sys_tasks`;
CREATE TABLE `sys_tasks` (
- `Id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'UID',
- `Name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '任务名称',
- `JobGroup` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '任务分组',
- `Cron` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '运行时间表达式',
- `AssemblyName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '程序集名称',
- `ClassName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '任务所在类',
- `Remark` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '任务描述',
- `RunTimes` int(11) NOT NULL COMMENT '执行次数',
- `BeginTime` datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
- `EndTime` datetime(0) NULL DEFAULT NULL COMMENT '结束时间',
- `TriggerType` int(11) NOT NULL COMMENT '触发器类型(0、simple 1、cron)',
+ `id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'UID',
+ `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '任务名称',
+ `jobGroup` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '任务分组',
+ `cron` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '运行时间表达式',
+ `assemblyName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '程序集名称',
+ `className` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '任务所在类',
+ `remark` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '任务描述',
+ `runTimes` int(11) NOT NULL COMMENT '执行次数',
+ `beginTime` datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
+ `endTime` datetime(0) NULL DEFAULT NULL COMMENT '结束时间',
+ `triggerType` int(11) NOT NULL COMMENT '触发器类型(0、simple 1、cron)',
`IntervalSecond` int(11) NOT NULL COMMENT '执行间隔时间(单位:秒)',
`IsStart` tinyint(4) NOT NULL COMMENT '是否启动',
`JobParams` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '传入参数',
@@ -29,6 +29,7 @@ CREATE TABLE `sys_tasks` (
`apiUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'api执行地址',
`taskType` int(4) NULL DEFAULT 1 COMMENT '任务类型1程序集任务 2网络请求',
`sqlText` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'SQL语句',
+ `requestMethod` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'http请求方法',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '计划任务' ROW_FORMAT = Dynamic;
diff --git a/document/admin-sqlserver.sql b/document/admin-sqlserver.sql
index f3077f4..4a69982 100644
--- a/document/admin-sqlserver.sql
+++ b/document/admin-sqlserver.sql
@@ -27,10 +27,11 @@ CREATE TABLE sys_tasks
lastRunTime datetime , --最后执行时间
taskType int null , --任务类型 1程序集 2网络请求
apiUrl varchar(200), --网络请求地址
- sqlText VARCHAR(1000) --sql语句
+ sqlText VARCHAR(1000), --sql语句
+ requestMethod VARCHAR(10) --请求方法
)
GO
-INSERT INTO sys_tasks VALUES ('1410905433996136448', '测试任务', 'SYSTEM', '0 0/10 * * * ? ', 'ZR.Tasks', 'TaskScheduler.Job_SyncTest', NULL, 0, '2021-07-02 18:17:31', '9999-12-31 00:00:00', 1, 1, 1, NULL, '2021-07-02 18:17:23', '2021-07-02 18:17:31', 'admin', NULL, NULL, 1, '', '');
+INSERT INTO sys_tasks VALUES ('1410905433996136448', '测试任务', 'SYSTEM', '0 0/10 * * * ? ', 'ZR.Tasks', 'TaskScheduler.Job_SyncTest', NULL, 0, '2021-07-02 18:17:31', '9999-12-31 00:00:00', 1, 1, 1, NULL, '2021-07-02 18:17:23', '2021-07-02 18:17:31', 'admin', NULL, NULL, 1, '', '', '');
GO
if OBJECT_ID(N'sys_tasks_log',N'U') is not NULL DROP TABLE sys_tasks_log
GO