From 2f685ed87448e50459ee4c0b2ac12c8d7af52f19 Mon Sep 17 00:00:00 2001 From: "chao.liuc" Date: Thu, 3 May 2012 07:04:07 +0000 Subject: [PATCH] =?UTF-8?q?DUBBO-354=20API=E6=96=B9=E5=BC=8F=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E6=96=B9=E6=B3=95=E8=B0=83=E7=94=A8=E4=B8=BA=E5=BC=82?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1622 1a56cb94-b969-4eaa-88fa-be21384802f2 --- .../src/main/java/com/alibaba/dubbo/common/Constants.java | 1 + .../java/com/alibaba/dubbo/demo/consumer/DemoAction.java | 7 ++++--- .../src/main/java/com/alibaba/dubbo/rpc/RpcContext.java | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/Constants.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/Constants.java index d61d81815..2d8c6a1ed 100644 --- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/Constants.java +++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/Constants.java @@ -535,6 +535,7 @@ public class Constants { public static class Attachments { public static final String IS_ASYNC_KEY = "attachments.async"; + public static final String IS_ONEWAY_KEY = "attachments.oneway"; public static final String INVOCATIONID_KEY = "attachments.invocation.id"; } diff --git a/dubbo-demo/dubbo-demo-consumer/src/main/java/com/alibaba/dubbo/demo/consumer/DemoAction.java b/dubbo-demo/dubbo-demo-consumer/src/main/java/com/alibaba/dubbo/demo/consumer/DemoAction.java index 1d174aa7d..24aa87a97 100644 --- a/dubbo-demo/dubbo-demo-consumer/src/main/java/com/alibaba/dubbo/demo/consumer/DemoAction.java +++ b/dubbo-demo/dubbo-demo-consumer/src/main/java/com/alibaba/dubbo/demo/consumer/DemoAction.java @@ -42,9 +42,10 @@ public class DemoAction { System.out.println("async call ret :" + f.get()); - RpcContext.getContext().onewayCall(new Callable() { - public String call() throws Exception { - return demoService.sayHello("oneway call request"); + RpcContext.getContext().asyncCall(new Runnable() { + public void run() { + demoService.sayHello("oneway call request"); + demoService.sayHello("oneway call request"); } }); diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/RpcContext.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/RpcContext.java index 76b87edcf..2db5ac46f 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/RpcContext.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/RpcContext.java @@ -573,11 +573,11 @@ public class RpcContext { * oneway调用,只发送请求,不接收返回结果. * @param callable */ - public void onewayCall(Callable callable) { + public void asyncCall(Runnable runable) { try { setAttachment(Constants.Attachments.IS_ONEWAY_KEY, Boolean.TRUE.toString()); - callable.call(); - } catch (Exception e) { + runable.run(); + } catch (Throwable e) { //FIXME 异常是否应该放在future中? throw new RpcException("oneway call error ." + e.getMessage(), e); } finally { -- GitLab