node.js 和缓慢的数据库查询
node.js and slow database queries
我正在重写一个 c# 服务器,我想使用事件驱动模型。
我的服务器需要进行复杂的数据库查询,这可能需要一些时间才能完成。这如何适应事件驱动模型,在该模型中我将使用一个事件循环处理所有请求?我不想在等待数据库响应时冻结循环。
我想既然你知道事件循环,你就知道它是如何工作的,但为了以防万一,I'll leave this here。
当您向数据库发送查询时,node.js 将通过 http 或其他一些协议执行此操作,此连接通常在单独的线程上处理。发送请求后,代码继续执行并清除调用堆栈,从而允许事件循环继续。一旦收到响应,一个函数就会被注入回调队列,当它排在下一个队列中时会被处理并且事件循环运行(并且事件循环仅在调用堆栈为空时运行,请参见视频。)
只要你做的一切都是异步的,你就不会冻结事件循环。
我正在重写一个 c# 服务器,我想使用事件驱动模型。 我的服务器需要进行复杂的数据库查询,这可能需要一些时间才能完成。这如何适应事件驱动模型,在该模型中我将使用一个事件循环处理所有请求?我不想在等待数据库响应时冻结循环。
我想既然你知道事件循环,你就知道它是如何工作的,但为了以防万一,I'll leave this here。
当您向数据库发送查询时,node.js 将通过 http 或其他一些协议执行此操作,此连接通常在单独的线程上处理。发送请求后,代码继续执行并清除调用堆栈,从而允许事件循环继续。一旦收到响应,一个函数就会被注入回调队列,当它排在下一个队列中时会被处理并且事件循环运行(并且事件循环仅在调用堆栈为空时运行,请参见视频。)
只要你做的一切都是异步的,你就不会冻结事件循环。