我喜欢20
个帖子。每个线程只对findOne
进行MongoDB
查询:
db.myCollection.findOne({"queryKey" : "queryValue"})
因此findOne
将返回找到的文档的null
。
每当其中一个线程返回找到的文档而不是null
时,我想关闭其他线程。
有没有办法做到这一点?
我尝试在ExecutorService
中使用invokeAny
。但它返回的结果是 成功 。在我的情况下, 成功 的情况是findOne
返回找到的文档而不是null
。
注意:我的真实例子比findOne
更复杂(这就是我使用多线程而不仅仅是顺序调用的原因)
答案 0 :(得分:2)
根据invokeAny
的定义,返回第一个成功的结果。要在用例包装findOne
中使其工作,并在null
时抛出异常,使其不成功。