我正在检查Apache如何创建连接客户端的Flink代码: https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/netty/PartitionRequestClientFactory.java#L55-L108
我正在考虑2秒后超时的waitForChannel()
方法:
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秒后不断尝试连接?
答案 0 :(得分:0)
我们实际上并没有在等待之后尝试(重新)连接,我们只是重新进入循环来检查条件,并且一旦执行任何connectLock.notifyAll()
调用就会唤醒,也是在超时结束之前。
通常情况下,这使您有机会对永远不会有这样的通知的情况做出反应,但上面的xTrollxDudex
实际上我没有看到任何可能导致循环的其他地方。