2015-12-01 79 views
2

与非阻塞异步mongo java/scala驱动程序一起使用时,可以为无法直接使用空闲连接执行的操作定义等待时间和等待队列大小。 设置这些值时,mongo驱动程序将使线程等待可用连接。非阻塞异步mongo java/scala驱动程序可以阻塞线程 - 如何处理该问题?

此行为是非常危险的考虑与非阻塞异步IO编写的应用程序。这些应用程序使用的线程数量非常有限(=内核数量)。 阻塞其中一个线程可能会阻塞整个应用程序。

什么是推荐的方式,为这样的应用程序? 我们是否应该将所有这些等待设置设置为0,并在应用程序中处理MongoWaitQueueFullException并重试? 当连接空闲时,驱动程序是否应调用应用程序回调?

在此先感谢您的答案!

回答