diff --git a/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/impl/HttpProcessor.java b/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/impl/HttpProcessor.java index a9583f48..6f51017e 100644 --- a/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/impl/HttpProcessor.java +++ b/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/impl/HttpProcessor.java @@ -1,6 +1,6 @@ package tech.powerjob.official.processors.impl; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONValidator; import com.github.kfcfans.powerjob.worker.core.processor.ProcessResult; import com.github.kfcfans.powerjob.worker.core.processor.TaskContext; @@ -24,14 +24,16 @@ import java.util.concurrent.TimeUnit; */ public class HttpProcessor extends CommonBasicProcessor { - // 60 seconds + /** + * 60 seconds + */ private static final int DEFAULT_TIMEOUT = 60; private static final Map CLIENT_STORE = new ConcurrentHashMap<>(); @Override public ProcessResult process0(TaskContext taskContext) throws Exception { OmsLogger omsLogger = taskContext.getOmsLogger(); - HttpParams httpParams = JSONObject.parseObject(CommonUtils.parseParams(taskContext), HttpParams.class); + HttpParams httpParams = JSON.parseObject(CommonUtils.parseParams(taskContext), HttpParams.class); if (StringUtils.isEmpty(httpParams.url)) { return new ProcessResult(false, "url can't be empty!"); @@ -52,11 +54,9 @@ public class HttpProcessor extends CommonBasicProcessor { } // set default mediaType - if (!"GET".equals(httpParams.method) && StringUtils.isEmpty(httpParams.mediaType)) { - if (JSONValidator.from(httpParams.body).validate()) { - httpParams.mediaType = "application/json"; - omsLogger.warn("try to use 'application/json' as media type"); - } + if (!"GET".equals(httpParams.method) && StringUtils.isEmpty(httpParams.mediaType) && JSONValidator.from(httpParams.body).validate()) { + httpParams.mediaType = "application/json"; + omsLogger.warn("try to use 'application/json' as media type"); } // set default timeout diff --git a/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/util/CommonUtils.java b/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/util/CommonUtils.java index 4491fdb8..c6e24331 100644 --- a/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/util/CommonUtils.java +++ b/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/util/CommonUtils.java @@ -11,7 +11,15 @@ import org.apache.commons.lang3.StringUtils; */ public class CommonUtils { + private CommonUtils() { + + } + public static String parseParams(TaskContext context) { + // 工作流中的总是优先使用 jobParams + if (context.getWfInstanceId() == null) { + return context.getJobParams(); + } if (StringUtils.isNotEmpty(context.getInstanceParams())) { return context.getInstanceParams(); } diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/executor/ProcessorRunnable.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/executor/ProcessorRunnable.java index cfb34bd6..0b7dfd84 100644 --- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/executor/ProcessorRunnable.java +++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/executor/ProcessorRunnable.java @@ -104,6 +104,7 @@ public class ProcessorRunnable implements Runnable { TaskContext taskContext = new TaskContext(); BeanUtils.copyProperties(task, taskContext); taskContext.setJobId(instanceInfo.getJobId()); + taskContext.setWfInstanceId(instanceInfo.getWfInstanceId()); taskContext.setMaxRetryTimes(instanceInfo.getTaskRetryNum()); taskContext.setCurrentRetryTimes(task.getFailedCnt()); taskContext.setJobParams(instanceInfo.getJobParams()); diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/processor/TaskContext.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/processor/TaskContext.java index 8a3c2c35..107d791b 100644 --- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/processor/TaskContext.java +++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/processor/TaskContext.java @@ -31,6 +31,8 @@ public class TaskContext { private Long instanceId; + private Long wfInstanceId; + private Long subInstanceId; private String taskId;