Overview
当您使用 Node.js 驱动程序执行服务器操作时,您可以限制操作每个阶段允许的持续时间。指定每个阶段的超时选项,以限制服务器选择、连接检出和服务器端执行等阶段。当超时到期时,Node.js 驱动程序会引发超时异常。
警告
timeoutMS 和 timeoutMode 连接选项在 Node.js 驱动程序 v7.8 及更高版本中已弃用。这些选项无效,并计划在未来版本中删除。
在 Node.js 驱动程序版本 6.11 到 6.21 以及 7.0 到 7.7 中,timeoutMS 连接选项可能会导致连接池不同步。这种不同步发生在操作超时之后,并可能暴露其他用户的数据。要了解更多信息,请参阅 版本 7.8 发布说明中的升级警告。
请改用本页所述的每个阶段的超时选项。
各阶段超时选项
Node.js 驱动程序提供了以下选项来限制服务器操作的每个阶段所允许的时间:
serverSelectionTimeoutMS:限制驱动程序在引发错误之前阻塞服务器选择的时间(以毫秒为单位)。waitQueueTimeoutMS:限制驱动程序尝试从服务器的连接池中获取连接所花费的时间(以毫秒为单位)。socketTimeoutMS:限制驱动程序尝试在套接字上发送或接收数据的时间(以毫秒为单位)。maxTimeMS:限制服务器在操作到达服务器后执行该操作所花费的时间(以毫秒为单位)。您只能将maxTimeMS传递给单个操作或游标。
要了解如何指定这些选项(包括代码示例),请参阅指定连接选项指南中的“连接超时选项”部分。