From 14109dcc1831316b3c4392d85106a1c6242f6c52 Mon Sep 17 00:00:00 2001 From: wentch <22250530@qq.com> Date: Wed, 13 Jan 2016 15:54:01 +0800 Subject: [PATCH] --- service.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/service.html b/service.html index 6a01dc0b9..0837e5cb4 100644 --- a/service.html +++ b/service.html @@ -251,7 +251,13 @@
生成远程模式Service时发现参数带有@DynCall注解的方法,在远程调用返回结果时会进行回调处理。
异步调用
-远程模式不仅对@DynCall注解进行处理,而且对方法含有 java.nio.channels.CompletionHandler 的参数也进行异步特殊处理。
+远程模式不仅对@DynCall注解进行处理,而且对方法含有 java.nio.channels.CompletionHandler 的参数也进行异步特殊处理。异步调用对远程模式非常有意义,可以减少同步方式对当前线程的占用时间。也给Source组件的异步调用提供了基础。
+ @Override
+ public <T> void update(final CompletionHandler<Void, T[]> handler, @DynAttachment final T... values) {
+ source.update(values);
+ if (handler != null) handler.completed(null, values);
+ }如上图DataSourceService的源码,当DataSource为本地实例时,异步接口(含CompletionHandler参数的)与同步接口执行流程相同。当DataSource为远程模式时,调用异步接口时,通信接口发到远程服务器时CompletionHandler参数的值传null,返回数据后再调用本地的CompletionHandler参数值执行。