mirror of
https://github.com/PowerJob/PowerJob.git
synced 2025-07-17 00:00:04 +08:00
fix: SpringMethodProcessor can't throw correct exception
This commit is contained in:
parent
388581c321
commit
e2887a12f6
@ -5,9 +5,14 @@ import tech.powerjob.worker.annotation.PowerJobHandler;
|
|||||||
import tech.powerjob.worker.core.processor.TaskContext;
|
import tech.powerjob.worker.core.processor.TaskContext;
|
||||||
import tech.powerjob.worker.log.OmsLogger;
|
import tech.powerjob.worker.log.OmsLogger;
|
||||||
|
|
||||||
@Component
|
@Component(value = "springMethodProcessorService")
|
||||||
public class SpringMethodProcessorService {
|
public class SpringMethodProcessorService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理器配置方法1: 全限定类名#方法名,比如 tech.powerjob.samples.tester.SpringMethodProcessorService#testEmptyReturn
|
||||||
|
* 处理器配置方法2: SpringBean名称#方法名,比如 springMethodProcessorService#testEmptyReturn
|
||||||
|
* @param context 必须要有入参 TaskContext,返回值可以是 null,也可以是其他任意类型。正常返回代表成功,抛出异常代表执行失败
|
||||||
|
*/
|
||||||
@PowerJobHandler(name = "testEmptyReturn")
|
@PowerJobHandler(name = "testEmptyReturn")
|
||||||
public void test(TaskContext context) {
|
public void test(TaskContext context) {
|
||||||
OmsLogger omsLogger = context.getOmsLogger();
|
OmsLogger omsLogger = context.getOmsLogger();
|
||||||
|
@ -6,7 +6,6 @@ import org.springframework.context.ApplicationContext;
|
|||||||
import tech.powerjob.worker.annotation.PowerJobHandler;
|
import tech.powerjob.worker.annotation.PowerJobHandler;
|
||||||
import tech.powerjob.worker.extension.processor.ProcessorBean;
|
import tech.powerjob.worker.extension.processor.ProcessorBean;
|
||||||
import tech.powerjob.worker.extension.processor.ProcessorDefinition;
|
import tech.powerjob.worker.extension.processor.ProcessorDefinition;
|
||||||
import tech.powerjob.worker.processor.MethodBasicProcessor;
|
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
package tech.powerjob.worker.processor;
|
package tech.powerjob.worker.processor.impl;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||||
import tech.powerjob.common.serialize.JsonUtils;
|
import tech.powerjob.common.serialize.JsonUtils;
|
||||||
import tech.powerjob.worker.core.processor.ProcessResult;
|
import tech.powerjob.worker.core.processor.ProcessResult;
|
||||||
import tech.powerjob.worker.core.processor.TaskContext;
|
import tech.powerjob.worker.core.processor.TaskContext;
|
||||||
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
|
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
public class MethodBasicProcessor implements BasicProcessor {
|
class MethodBasicProcessor implements BasicProcessor {
|
||||||
|
|
||||||
private final Object bean;
|
private final Object bean;
|
||||||
|
|
||||||
@ -20,7 +22,13 @@ public class MethodBasicProcessor implements BasicProcessor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProcessResult process(TaskContext context) throws Exception {
|
public ProcessResult process(TaskContext context) throws Exception {
|
||||||
|
try {
|
||||||
Object result = method.invoke(bean, context);
|
Object result = method.invoke(bean, context);
|
||||||
return new ProcessResult(true, JsonUtils.toJSONString(result));
|
return new ProcessResult(true, JsonUtils.toJSONString(result));
|
||||||
|
} catch (InvocationTargetException ite) {
|
||||||
|
ExceptionUtils.rethrow(ite.getTargetException());
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ProcessResult(false, "IMPOSSIBLE");
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user