栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何通知Jetty 9.02的“消耗的内容”。ContentListener?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何通知Jetty 9.02的“消耗的内容”。ContentListener?

这个问题的简短答案是在异步调用完成处理后调用 HttpClient.stop ()。本教程示例中概述了一种解决方法:

  • Jetty的HTTP客户端

主要方面是在(所有)侦听器都完成并且处理完成之前,可能不会调用 stop ()。在上面的示例中,
CountdownLatch

用于同步stop()调用。这在Jetty示例中并没有真正解释,例如:

  • 新的Jetty 9 HTTP客户端
  • Chapter 28. HTTP客户端-异步API
  • 类HttpClient

某些异步接口使用诸如“ 消费内容 ”之类的调用。但是,对于Jetty 9,stop()调用会进行清理。

我们的用例很简单。在侦听器的onComplete()方法中,将调用 setCompleted ()方法,该方法将减少
Httpclient.send ()的倒计时锁存器。在send()调用之后,我们有一个名为 完成
()的同步方法,该方法等待对setCompleted()的调用。

public  boolean finish(){    boolean result      = false;    int     retryCount  =  0;    try    {        if( !this.latch.await( 5, TimeUnit.SEConDS ) )        { Util.warn(LOG,"Timed-out -- msg #", String.format("%0,4d", this.msgId) );        }        this.httpClient.stop();        result = this.httpClient.isStopped();    }    catch (InterruptedException ex )    {        log.warn("Interrupted -- msg #", String.format("%0,4d", this.msgId)" );    }    catch (Exception ex)    {        log.error(LOG,"Stop-exception -- msg #", String.format("%0,4d", this.msgId) );    }    if( !result )    {        log.warn(" * HttpClient NOT stopped -- msg #", String.format("%0,4d", this.msgId) );    }    return  result;}

只要在我们的onComplete()方法的末尾调用setCompleted(),stop调用似乎就对调用感到满意。我不清楚您是否不确定onComplete的内部时间。否则,一切似乎都令人满意。我真的相信API文档应该包括用于此类操作的“
清理代码 ”-数据通信,数据库等。希望本文能够为他人节省时间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384043.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号