【发布时间】:2017-05-24 15:08:21
【问题描述】:
我需要设置聚合管道执行的超时时间。我正在使用 MongoDB Java 驱动程序 3.2。我知道我必须使用的代码如下:
collection.aggregate(pipeline).maxTime(10, TimeUnit.SECONDS);
问题是,一旦达到超时,我无法在任何地方找到程序的行为。它会抛出异常吗?它是否会以静默方式终止并返回 null 结果?
MongoDB 官方文档什么也没说(参见cursor.maxTimeMS())。此外,Java API 不涉及任何特定行为(请参阅maxTime)。
这怎么可能?!
【问题讨论】:
-
我希望它会返回一个空迭代。如果你想测试它,只需输入非常短的时间,这会强制立即超时,然后看看你会得到什么。
-
我试过了。它似乎什么都不做。超时似乎不受尊重:(
-
所以有一个小的超时它返回一个非空值?
-
@RAZ_Muh_Taz 超时时间超过抛出异常。有关详细信息,请参阅我的答案。
标签: java mongodb timeout aggregation-framework