【优化】通用HTTP任务(httpJobHandler)优化,任务参数格式调整为json格式;示例参数如下:

3.0.0-release
xuxueli 8 months ago
parent 8d9f3cef17
commit 4af1847214

@ -1173,9 +1173,11 @@ public void demoJobHandler() throws Exception {
- shardingJobHandler分片示例任务任务内部模拟处理分片参数可参考熟悉分片任务 - shardingJobHandler分片示例任务任务内部模拟处理分片参数可参考熟悉分片任务
- httpJobHandler通用HTTP任务Handler业务方只需要提供HTTP链接等信息即可不限制语言、平台。示例任务入参如下 - httpJobHandler通用HTTP任务Handler业务方只需要提供HTTP链接等信息即可不限制语言、平台。示例任务入参如下
``` ```
url: http://www.xxx.com {
method: get 或 post "url": "http://www.baidu.com",
data: post-data "method": "get",
"data": "hello world"
}
``` ```
- commandJobHandler通用命令行任务Handler业务方只需要提供命令行即可命令及参数之间通过空格隔开如任务参数 "ls la" 或 "pwd" 将会执行命令并输出数据; - commandJobHandler通用命令行任务Handler业务方只需要提供命令行即可命令及参数之间通过空格隔开如任务参数 "ls la" 或 "pwd" 将会执行命令并输出数据;
@ -2442,8 +2444,16 @@ public void execute() {
- 1、【升级】调度中心升级至 SpringBoot3 + JDK17 - 1、【升级】调度中心升级至 SpringBoot3 + JDK17
- 2、【升级】Docker镜像升级镜像构建基于JDK17openjdk:17-jdk-slim - 2、【升级】Docker镜像升级镜像构建基于JDK17openjdk:17-jdk-slim
- 3、【优化】IP获取逻辑优化优先遍历网卡来获取可用IP - 3、【优化】IP获取逻辑优化优先遍历网卡来获取可用IP
- 4、【优化】通用命令行任务(“commandJobHandler”)优化,支持多参数执行,命令及参数之间通过空格隔开,如任务参数 "ls la" 或 "pwd" 将会执行命令并输出数据; - 4、【优化】通用命令行任务(“commandJobHandler”)优化,支持多参数执行,命令及参数之间通过空格隔开;如任务参数 "ls la" 或 "pwd" 将会执行命令并输出数据;
- 5、[规划中]登陆态Token生成逻辑优化混淆登陆时间属性降低token泄漏风险 - 5、【优化】通用HTTP任务httpJobHandler优化任务参数格式调整为json格式示例参数如下
```
{
"url": "http://www.baidu.com",
"method": "get",
"data": "hello world"
}
```
- 6、[规划中]登陆态Token生成逻辑优化混淆登陆时间属性降低token泄漏风险
### TODO LIST ### TODO LIST
- 1、调度隔离调度中心针对不同执行器各自维护不同的调度和远程触发组件。 - 1、调度隔离调度中心针对不同执行器各自维护不同的调度和远程触发组件。

@ -2,6 +2,7 @@ package com.xxl.job.executor.sample.frameless.jobhandler;
import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.util.GsonTool;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -12,6 +13,7 @@ import java.io.InputStreamReader;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
@ -70,6 +72,8 @@ public class SampleXxlJob {
/** /**
* 3 * 3
*
* "ls -a" "pwd"
*/ */
@XxlJob("commandJobHandler") @XxlJob("commandJobHandler")
public void commandJobHandler() throws Exception { public void commandJobHandler() throws Exception {
@ -126,15 +130,20 @@ public class SampleXxlJob {
/** /**
* 4Http * 4Http
*
* *
* "url: http://www.baidu.com\n" + * <pre>
* "method: get\n" + * {
* "data: content\n"; * "url": "http://www.baidu.com",
* "method": "get",
* "data": "hello world"
* }
* </pre>
*/ */
@XxlJob("httpJobHandler") @XxlJob("httpJobHandler")
public void httpJobHandler() throws Exception { public void httpJobHandler() throws Exception {
// param parse // param
String param = XxlJobHelper.getJobParam(); String param = XxlJobHelper.getJobParam();
if (param==null || param.trim().length()==0) { if (param==null || param.trim().length()==0) {
XxlJobHelper.log("param["+ param +"] invalid."); XxlJobHelper.log("param["+ param +"] invalid.");
@ -143,20 +152,19 @@ public class SampleXxlJob {
return; return;
} }
String[] httpParams = param.split("\n"); // param parse
String url = null; String url;
String method = null; String method;
String data = null; String data;
for (String httpParam: httpParams) { try {
if (httpParam.startsWith("url:")) { Map<String, String> paramMap =GsonTool.fromJson(param, Map.class);
url = httpParam.substring(httpParam.indexOf("url:") + 4).trim(); url = paramMap.get("url");
} method = paramMap.get("method");
if (httpParam.startsWith("method:")) { data = paramMap.get("data");
method = httpParam.substring(httpParam.indexOf("method:") + 7).trim().toUpperCase(); } catch (Exception e) {
} XxlJobHelper.log(e);
if (httpParam.startsWith("data:")) { XxlJobHelper.handleFail();
data = httpParam.substring(httpParam.indexOf("data:") + 5).trim(); return;
}
} }
// param valid // param valid

@ -2,6 +2,7 @@ package com.xxl.job.executor.service.jobhandler;
import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.util.GsonTool;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -13,6 +14,7 @@ import java.io.InputStreamReader;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
@ -72,6 +74,8 @@ public class SampleXxlJob {
/** /**
* 3 * 3
*
* "ls -a" "pwd"
*/ */
@XxlJob("commandJobHandler") @XxlJob("commandJobHandler")
public void commandJobHandler() throws Exception { public void commandJobHandler() throws Exception {
@ -128,15 +132,20 @@ public class SampleXxlJob {
/** /**
* 4Http * 4Http
*
* *
* "url: http://www.baidu.com\n" + * <pre>
* "method: get\n" + * {
* "data: content\n"; * "url": "http://www.baidu.com",
* "method": "get",
* "data": "hello world"
* }
* </pre>
*/ */
@XxlJob("httpJobHandler") @XxlJob("httpJobHandler")
public void httpJobHandler() throws Exception { public void httpJobHandler() throws Exception {
// param parse // param
String param = XxlJobHelper.getJobParam(); String param = XxlJobHelper.getJobParam();
if (param==null || param.trim().length()==0) { if (param==null || param.trim().length()==0) {
XxlJobHelper.log("param["+ param +"] invalid."); XxlJobHelper.log("param["+ param +"] invalid.");
@ -145,20 +154,19 @@ public class SampleXxlJob {
return; return;
} }
String[] httpParams = param.split("\n"); // param parse
String url = null; String url;
String method = null; String method;
String data = null; String data;
for (String httpParam: httpParams) { try {
if (httpParam.startsWith("url:")) { Map<String, String> paramMap =GsonTool.fromJson(param, Map.class);
url = httpParam.substring(httpParam.indexOf("url:") + 4).trim(); url = paramMap.get("url");
} method = paramMap.get("method");
if (httpParam.startsWith("method:")) { data = paramMap.get("data");
method = httpParam.substring(httpParam.indexOf("method:") + 7).trim().toUpperCase(); } catch (Exception e) {
} XxlJobHelper.log(e);
if (httpParam.startsWith("data:")) { XxlJobHelper.handleFail();
data = httpParam.substring(httpParam.indexOf("data:") + 5).trim(); return;
}
} }
// param valid // param valid

Loading…
Cancel
Save