【问题标题】:When netty channelfuture's status can become uncompleted?当 netty channelfuture 的状态可以变得未完成?
【发布时间】:2013-05-02 00:37:27
【问题描述】:

在我们的生产系统中,我可以看到以下可能发生在 netty ChannelFuture 上:

channelfuture.awaitUninterruptibly(10 秒) 返回后,channelfuture.isDone() 和 channelfuture.isSuccess() 都返回 false。我想知道在什么情况下会发生这种情况?

channelfuture 附加了一个消息发送操作(客户端)。 tcpdump显示服务器端的窗口大小为0。

提前致谢。

【问题讨论】:

    标签: netty


    【解决方案1】:

    这意味着您等待了 10 秒,但 ChannelFuture 仍未完成。这意味着操作尚未成功或失败。

    【讨论】:

    • 谢谢。如果操作还没有成功或失败,为什么 channelfuture.awaitUninterruptively 返回?文档提到如果超时,它应该以失败完成。
    • 因为你告诉它最多等待 10 秒...请参阅 api 文档。
    • 嗨诺曼,我猜你误解了我的意思。如果它返回是因为如果超时(10 秒),它的状态应该是这样的:hannelfuture.isDone() == true 和 channelfuture.isSuccess() == false。但我要问的是为什么他们都返回假!!
    • 不,我没有误会你... isDone 仅在成功或错误“完成”后才为真。就像我说的阅读 api 文档
    • channelfuture.isDone() 和 channelfuture.isSuccess() 都返回 false。 api文档说如果超时,hannelfuture.isDone() == TRUE。我想知道如果它仍未完成,为什么它可以返回。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多