在nodeJS中,我知道如果我在一些异步调用上转储一堆大回调,它们都会被放入事件循环中并最终解决。我非常确定,基于MDN description of the event loop,这通常是以FIFO方式完成的。
在我正在处理的应用程序上,我转储了一堆异步调用,这些调用每30分钟根据一些Web抓取请求操作数据库。如果这些花费一两分钟才能通过,我真的不在乎,因为我每隔30分钟只拨打一次电话,这些电话的数量不会改变。
但是,如果用户在两分钟内向服务器发出GET
请求,那么当服务器完成处理所有网页抓取时,我宁愿让它们没有滞后。有没有办法将这些用户请求快速跟踪到事件队列的前面?
答案 0 :(得分:3)
我认为你在这里有一个误解:这不是异步调用,而是“放入事件循环并最终解决”。相反,异步调用在后台工作(而其他事件,例如您的GET请求在事件循环中处理),当结果返回时,此结果与回调一起被放入事件循环中。
因此,无论如何都会立即提供GET请求,并且不需要快速跟踪它。