我正在调用streamingContext.awaitTerminationOrTimeout(timeout),但我想依赖于超时环境.
这意味着如果我的环境是UAT,我想停止工作,但如果我的环境是生产环境,我不希望它完全超时.
我已经检查了文档here,但是我找不到任何关于是否传递0或-1作为超时的引用只会使作业永远运行(或直到它失败).
是否有任何可能的超时值可以解决问题?或者任何其他替代方案并不意味着为我的生产环境调用awaitTermination并且为我的UAT环境调用awaitTerminationOrTimeout?
最佳答案 看了一下图书馆后,我发现任何负值都可以.
awaitTerminationOrTimeout(timeout)在内部调用streamingContext.awaitTerminationOrTimeout(timeout),然后调用contextWriter.waitForStopOrError(timeout).
在waitForStopOrError内部有一个条件,如果超时低于零,那么我们等待.
TL:DR:-1永远不会让作业超时.