diff --git a/powerjob-official-processors/pom.xml b/powerjob-official-processors/pom.xml index edb8a218..44977ad1 100644 --- a/powerjob-official-processors/pom.xml +++ b/powerjob-official-processors/pom.xml @@ -72,6 +72,14 @@ ${junit.version} test + + + + ch.qos.logback + logback-classic + ${logback.version} + test + diff --git a/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/CommonBasicProcessor.java b/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/CommonBasicProcessor.java index 492d12db..3b27624c 100644 --- a/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/CommonBasicProcessor.java +++ b/powerjob-official-processors/src/main/java/tech/powerjob/official/processors/CommonBasicProcessor.java @@ -5,6 +5,7 @@ import com.github.kfcfans.powerjob.worker.core.processor.TaskContext; import com.github.kfcfans.powerjob.worker.core.processor.sdk.BasicProcessor; import com.github.kfcfans.powerjob.worker.log.OmsLogger; import com.google.common.base.Stopwatch; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.exception.ExceptionUtils; import tech.powerjob.official.processors.util.CommonUtils; @@ -14,23 +15,30 @@ import tech.powerjob.official.processors.util.CommonUtils; * @author tjq * @since 2021/1/30 */ +@Slf4j public abstract class CommonBasicProcessor implements BasicProcessor { @Override public ProcessResult process(TaskContext taskContext) throws Exception { + String status = "unknown"; + Stopwatch sw = Stopwatch.createStarted(); + String clzName = this.getClass().getSimpleName(); OmsLogger omsLogger = taskContext.getOmsLogger(); omsLogger.info("[{}] using params: {}", clzName, CommonUtils.parseParams(taskContext)); try { - Stopwatch sw = Stopwatch.createStarted(); ProcessResult result = process0(taskContext); omsLogger.info("[{}] execute succeed, using {}, result: {}", clzName, sw, result); + status = result.isSuccess() ? "succeed" : "failed"; return result; } catch (Throwable t) { + status = "exception"; omsLogger.error("[{}] execute failed!", clzName, t); return new ProcessResult(false, ExceptionUtils.getMessage(t)); + } finally { + log.info("[{}] status: {}, cost: {}", clzName, status, sw); } } 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 26d0227f..632df230 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 @@ -11,6 +11,7 @@ import org.apache.commons.lang3.StringUtils; import tech.powerjob.official.processors.CommonBasicProcessor; import tech.powerjob.official.processors.util.CommonUtils; +import java.time.Duration; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; @@ -130,6 +131,9 @@ public class HttpProcessor extends CommonBasicProcessor { private static OkHttpClient getClient(Integer timeout) { return CLIENT_STORE.computeIfAbsent(timeout, ignore -> new OkHttpClient.Builder() + .connectTimeout(Duration.ZERO) + .readTimeout(Duration.ZERO) + .writeTimeout(Duration.ZERO) .callTimeout(timeout, TimeUnit.SECONDS) .build()); } 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 3c9c4bc2..4491fdb8 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 @@ -12,7 +12,7 @@ import org.apache.commons.lang3.StringUtils; public class CommonUtils { public static String parseParams(TaskContext context) { - if (StringUtils.isEmpty(context.getInstanceParams())) { + if (StringUtils.isNotEmpty(context.getInstanceParams())) { return context.getInstanceParams(); } return context.getJobParams(); diff --git a/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/FileCleanupProcessorTest.java b/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/FileCleanupProcessorTest.java new file mode 100644 index 00000000..0980af33 --- /dev/null +++ b/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/FileCleanupProcessorTest.java @@ -0,0 +1,43 @@ +package tech.powerjob.official.processors.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.github.kfcfans.powerjob.worker.core.processor.TaskContext; +import org.junit.jupiter.api.Test; +import tech.powerjob.official.processors.TestUtils; + +import java.util.regex.Pattern; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * description + * + * @author tjq + * @since 2021/2/1 + */ +class FileCleanupProcessorTest { + + @Test + void testProcess() throws Exception { + JSONObject params = new JSONObject(); + params.put("dirPath", "/Users/tjq/logs/oms-server"); + params.put("filePattern", "*"); + params.put("retentionTime", 10); + JSONArray array = new JSONArray(); + array.add(params); + + String paramsStr = array.toJSONString(); + System.out.println(paramsStr); + + TaskContext taskContext = TestUtils.genTaskContext(paramsStr); + System.out.println(new FileCleanupProcessor().process(taskContext)); + } + + @Test + void testPatternCompile() throws Exception { + String fileName = "abc.log"; + System.out.println(fileName.matches("[a-z]*\\.log")); + System.out.println(Pattern.matches("\\*", fileName)); + } +} \ No newline at end of file diff --git a/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/HttpProcessorTest.java b/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/HttpProcessorTest.java index e3eb8fbc..68c6fd67 100644 --- a/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/HttpProcessorTest.java +++ b/powerjob-official-processors/src/test/java/tech/powerjob/official/processors/impl/HttpProcessorTest.java @@ -33,4 +33,14 @@ class HttpProcessorTest { System.out.println(new HttpProcessor().process(TestUtils.genTaskContext(params.toJSONString()))); } + + @Test + void testTimeout() throws Exception { + String url = "http://localhost:7700/tmp/sleep"; + JSONObject params = new JSONObject(); + params.put("url", url); + params.put("method", "GET"); + params.put("timeout", 20); + System.out.println(new HttpProcessor().process(TestUtils.genTaskContext(params.toJSONString()))); + } } \ No newline at end of file