This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit c59abf66a663871d303eee683bf511b70e10a2b3 Author: wujimin <[email protected]> AuthorDate: Fri Mar 9 15:41:30 2018 +0800 SCB-374 [WIP] consumer invocation publish life event --- .../core/provider/consumer/InvokerUtils.java | 31 ++++++++-------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/InvokerUtils.java b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/InvokerUtils.java index f15c6bb..7dc01f3 100644 --- a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/InvokerUtils.java +++ b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/InvokerUtils.java @@ -20,10 +20,7 @@ package org.apache.servicecomb.core.provider.consumer; import org.apache.servicecomb.core.Invocation; import org.apache.servicecomb.core.definition.SchemaMeta; import org.apache.servicecomb.core.invocation.InvocationFactory; -import org.apache.servicecomb.core.metrics.InvocationStartedEvent; -import org.apache.servicecomb.foundation.common.event.EventBus; import org.apache.servicecomb.swagger.invocation.AsyncResponse; -import org.apache.servicecomb.swagger.invocation.InvocationType; import org.apache.servicecomb.swagger.invocation.Response; import org.apache.servicecomb.swagger.invocation.context.ContextUtils; import org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory; @@ -60,30 +57,30 @@ public final class InvokerUtils { } public static Response innerSyncInvoke(Invocation invocation) { - int statusCode = 0; try { - triggerStartedEvent(invocation); + invocation.onStart(); SyncResponseExecutor respExecutor = new SyncResponseExecutor(); invocation.setResponseExecutor(respExecutor); invocation.next(respExecutor::setResponse); Response response = respExecutor.waitResponse(); - statusCode = response.getStatusCode(); + invocation.onFinish(response); return response; } catch (Throwable e) { String msg = String.format("invoke failed, %s", invocation.getOperationMeta().getMicroserviceQualifiedName()); LOGGER.debug(msg, e); - return Response.createConsumerFail(e); - } finally { - invocation.triggerFinishedEvent(statusCode); + + Response response = Response.createConsumerFail(e); + invocation.onFinish(response); + return response; } } public static void reactiveInvoke(Invocation invocation, AsyncResponse asyncResp) { try { - triggerStartedEvent(invocation); + invocation.onStart(); invocation.setSync(false); ReactiveResponseExecutor respExecutor = new ReactiveResponseExecutor(); @@ -92,7 +89,7 @@ public final class InvokerUtils { invocation.next(ar -> { ContextUtils.setInvocationContext(invocation.getParentContext()); try { - invocation.triggerFinishedEvent(ar.getStatusCode()); + invocation.onFinish(ar); asyncResp.handle(ar); } finally { ContextUtils.removeInvocationContext(); @@ -100,9 +97,10 @@ public final class InvokerUtils { }); } catch (Throwable e) { //if throw exception,we can use 500 for status code ? - invocation.triggerFinishedEvent(500); + Response response = Response.createConsumerFail(e); + invocation.onFinish(response); LOGGER.error("invoke failed, {}", invocation.getOperationMeta().getMicroserviceQualifiedName()); - asyncResp.consumerFail(e); + asyncResp.handle(response); } } @@ -110,11 +108,4 @@ public final class InvokerUtils { public static Object invoke(Invocation invocation) { return syncInvoke(invocation); } - - private static void triggerStartedEvent(Invocation invocation) { - long startTime = System.nanoTime(); - EventBus.getInstance().triggerEvent(new InvocationStartedEvent(invocation.getMicroserviceQualifiedName(), - InvocationType.CONSUMER, startTime)); - invocation.setStartTime(startTime); - } } -- To stop receiving notification emails like this one, please contact [email protected].
