apache-spark – Spark StreamingContext awaitTerminationOrTimeout

我正在调用streamingContext.awaitTerminationOrTimeout(timeout),但我想依赖于超时环境.

这意味着如果我的环境是UAT,我想停止工作,但如果我的环境是生产环境,我不希望它完全超时.

我已经检查了文档here,但是我找不到任何关于是否传递0或-1作为超时的引用只会使作业永远运行(或直到它失败).

是否有任何可能的超时值可以解决问题?或者任何其他替代方案并不意味着为我的生产环境调用awaitTermination并且为我的UAT环境调用awaitTerminationOrTimeout?

最佳答案 看了一下图书​​馆后,我发现任何负值都可以.

awaitTerminationOrTimeout(timeout)在内部调用streamingContext.awaitTerminationOrTimeout(timeout),然后调用contextWriter.waitForStopOrError(timeout).

在waitForStopOrError内部有一个条件,如果超时低于零,那么我们等待.

TL:DR:-1永远不会让作业超时.

点赞