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