From 8953ecc74f8d8a5c860113774546e40ed34f37fc Mon Sep 17 00:00:00 2001 From: tjq Date: Sun, 11 Jun 2023 15:40:50 +0800 Subject: [PATCH] feat: support powerjob method handler --- .../tester/SpringMethodProcessorService.java | 18 ++++++++++++------ .../{PowerJob.java => PowerJobHandler.java} | 8 ++++++-- .../BuildInSpringMethodProcessorFactory.java | 8 ++++---- 3 files changed, 22 insertions(+), 12 deletions(-) rename powerjob-worker/src/main/java/tech/powerjob/worker/annotation/{PowerJob.java => PowerJobHandler.java} (52%) diff --git a/powerjob-worker-samples/src/main/java/tech/powerjob/samples/tester/SpringMethodProcessorService.java b/powerjob-worker-samples/src/main/java/tech/powerjob/samples/tester/SpringMethodProcessorService.java index cf9282c4..7875f8e3 100644 --- a/powerjob-worker-samples/src/main/java/tech/powerjob/samples/tester/SpringMethodProcessorService.java +++ b/powerjob-worker-samples/src/main/java/tech/powerjob/samples/tester/SpringMethodProcessorService.java @@ -1,25 +1,31 @@ package tech.powerjob.samples.tester; import org.springframework.stereotype.Component; -import tech.powerjob.worker.annotation.PowerJob; +import tech.powerjob.worker.annotation.PowerJobHandler; import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.log.OmsLogger; @Component public class SpringMethodProcessorService { - @PowerJob("test") - public String test(TaskContext context) { + @PowerJobHandler(name = "testEmptyReturn") + public void test(TaskContext context) { OmsLogger omsLogger = context.getOmsLogger(); omsLogger.warn("测试日志"); - return null; } - @PowerJob("test1") + @PowerJobHandler(name = "testNormalReturn") public String test1(TaskContext context) { OmsLogger omsLogger = context.getOmsLogger(); omsLogger.warn("测试日志"); - return "测试日志"; + return "testNormalReturn"; + } + + @PowerJobHandler(name = "testThrowException") + public String testThrowException(TaskContext context) { + OmsLogger omsLogger = context.getOmsLogger(); + omsLogger.warn("testThrowException"); + throw new IllegalArgumentException("test"); } } diff --git a/powerjob-worker/src/main/java/tech/powerjob/worker/annotation/PowerJob.java b/powerjob-worker/src/main/java/tech/powerjob/worker/annotation/PowerJobHandler.java similarity index 52% rename from powerjob-worker/src/main/java/tech/powerjob/worker/annotation/PowerJob.java rename to powerjob-worker/src/main/java/tech/powerjob/worker/annotation/PowerJobHandler.java index 07c5fec0..b0324df5 100644 --- a/powerjob-worker/src/main/java/tech/powerjob/worker/annotation/PowerJob.java +++ b/powerjob-worker/src/main/java/tech/powerjob/worker/annotation/PowerJobHandler.java @@ -5,17 +5,21 @@ import java.lang.annotation.*; /** * 方法级别的power-job调度 + * PR#610 + * + * @author vannewang + * @since 2023/4/6 */ @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Inherited -public @interface PowerJob { +public @interface PowerJobHandler { /** * handler name */ - String value(); + String name(); diff --git a/powerjob-worker/src/main/java/tech/powerjob/worker/processor/impl/BuildInSpringMethodProcessorFactory.java b/powerjob-worker/src/main/java/tech/powerjob/worker/processor/impl/BuildInSpringMethodProcessorFactory.java index f05c89cc..b7a582ff 100644 --- a/powerjob-worker/src/main/java/tech/powerjob/worker/processor/impl/BuildInSpringMethodProcessorFactory.java +++ b/powerjob-worker/src/main/java/tech/powerjob/worker/processor/impl/BuildInSpringMethodProcessorFactory.java @@ -3,7 +3,7 @@ package tech.powerjob.worker.processor.impl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; -import tech.powerjob.worker.annotation.PowerJob; +import tech.powerjob.worker.annotation.PowerJobHandler; import tech.powerjob.worker.extension.processor.ProcessorBean; import tech.powerjob.worker.extension.processor.ProcessorDefinition; import tech.powerjob.worker.processor.MethodBasicProcessor; @@ -45,17 +45,17 @@ public class BuildInSpringMethodProcessorFactory extends AbstractBuildInSpringPr log.info("[ProcessorFactory] can't parse processorDefinition, this processor can't load by 'BuildInSpringMethodProcessorFactory'"); return null; } - String[] split = processorInfo.split("#"); + String[] split = processorInfo.split(DELIMITER); String methodName = split[1]; String className = split[0]; Object bean = getBean(className,applicationContext); Method[] methods = bean.getClass().getDeclaredMethods(); for (Method method : methods) { - PowerJob powerJob = method.getAnnotation(PowerJob.class); + PowerJobHandler powerJob = method.getAnnotation(PowerJobHandler.class); if (powerJob == null) { continue; } - String name = powerJob.value(); + String name = powerJob.name(); //匹配到和页面定义相同的methodName if (!name.equals(methodName)) { continue;