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.log.OmsLogger;
|
||||
|
||||
@Component
|
||||
@Component(value = "springMethodProcessorService")
|
||||
public class SpringMethodProcessorService {
|
||||
|
||||
/**
|
||||
* 处理器配置方法1: 全限定类名#方法名,比如 tech.powerjob.samples.tester.SpringMethodProcessorService#testEmptyReturn
|
||||
* 处理器配置方法2: SpringBean名称#方法名,比如 springMethodProcessorService#testEmptyReturn
|
||||
* @param context 必须要有入参 TaskContext,返回值可以是 null,也可以是其他任意类型。正常返回代表成功,抛出异常代表执行失败
|
||||
*/
|
||||
@PowerJobHandler(name = "testEmptyReturn")
|
||||
public void test(TaskContext context) {
|
||||
OmsLogger omsLogger = context.getOmsLogger();
|
||||
|
@ -6,7 +6,6 @@ import org.springframework.context.ApplicationContext;
|
||||
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;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
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.worker.core.processor.ProcessResult;
|
||||
import tech.powerjob.worker.core.processor.TaskContext;
|
||||
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class MethodBasicProcessor implements BasicProcessor {
|
||||
class MethodBasicProcessor implements BasicProcessor {
|
||||
|
||||
private final Object bean;
|
||||
|
||||
@ -20,7 +22,13 @@ public class MethodBasicProcessor implements BasicProcessor {
|
||||
|
||||
@Override
|
||||
public ProcessResult process(TaskContext context) throws Exception {
|
||||
Object result = method.invoke(bean, context);
|
||||
return new ProcessResult(true, JsonUtils.toJSONString(result));
|
||||
try {
|
||||
Object result = method.invoke(bean, context);
|
||||
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