我正在检查apache flink如何创建连接客户端的代码:https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/netty/partitionrequestclientfactory.java#l55-108年
我在想 waitForChannel()
2秒后超时的方法:https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/netty/partitionrequestclientfactory.java#l191
我不喜欢这个暂停,我想如果 error
发生或 partitionRequestClient
到达 notifyall()
就够了。
我说的对吗?或者我们要在等待2秒钟后不断尝试连接吗?
1条答案
按热度按时间cetgtptt1#
实际上,我们并没有在等待之后尝试(重新)连接,我们只是重新进入循环以检查条件,并将在出现任何问题时尽快醒来
connectLock.notifyAll()
调用被执行,也是在超时结束之前。通常情况下,这会给你一个机会,在永远不会有这种通知的情况下,你也会做出React
xTrollxDudex
在上面,我实际上没有看到任何其他地方,这里可能导致的循环。