This commit is contained in:
@@ -251,7 +251,13 @@
|
||||
<p> 生成远程模式Service时发现参数带有@DynCall注解的方法,在远程调用返回结果时会进行回调处理。</p>
|
||||
<br/>
|
||||
<p> 异步调用 </p>
|
||||
<p> 远程模式不仅对@DynCall注解进行处理,而且对方法含有 <b>java.nio.channels.CompletionHandler</b> 的参数也进行异步特殊处理。</p>
|
||||
<p> 远程模式不仅对@DynCall注解进行处理,而且对方法含有 <b>java.nio.channels.CompletionHandler</b> 的参数也进行异步特殊处理。异步调用对远程模式非常有意义,可以减少同步方式对当前线程的占用时间。也给Source组件的异步调用提供了基础。</p>
|
||||
<div class="highlight"><pre> <span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="kt">void</span> <span class="nf">update</span><span class="o">(</span><span class="kd">final</span> <span class="n">CompletionHandler</span><span class="o"><</span><span class="n">Void</span><span class="o">,</span> <span class="n">T</span><span class="o">[]></span> <span class="n">handler</span><span class="o">,</span> <span class="nd">@DynAttachment</span> <span class="kd">final</span> <span class="n">T</span><span class="o">...</span> <span class="n">values</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="n">source</span><span class="o">.</span><span class="na">update</span><span class="o">(</span><span class="n">values</span><span class="o">);</span>
|
||||
<span class="k">if</span> <span class="o">(</span><span class="n">handler</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="n">handler</span><span class="o">.</span><span class="na">completed</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="n">values</span><span class="o">);</span>
|
||||
<span class="o">}</span></pre></div>
|
||||
<p> 如上图DataSourceService的源码,当DataSource为本地实例时,异步接口(含<b>CompletionHandler</b>参数的)与同步接口执行流程相同。当DataSource为远程模式时,调用异步接口时,通信接口发到远程服务器时CompletionHandler参数的值传<b>null</b>,返回数据后再调用本地的CompletionHandler参数值执行。</p>
|
||||
<footer class="site-footer">
|
||||
<span class="site-footer-owner"><a href="https://github.com/wentch/redkale">RedKale</a> © <a href="https://github.com/wentch">wentch</a> 欢迎加入RedKale技术交流QQ群: 527523235</span>
|
||||
</footer>
|
||||
|
||||
Reference in New Issue
Block a user