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; class MethodBasicProcessor implements BasicProcessor { private final Object bean; private final Method method; public MethodBasicProcessor(Object bean, Method method) { this.bean = bean; this.method = method; } @Override public ProcessResult process(TaskContext context) throws Exception { 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"); } }