0
在nodeJS中,我知道如果我在一些異步調用上轉儲了大量回調,它們將全部放入事件循環並最終解決。我很肯定,基於MDN description of the event loop,,這通常是以FIFO的方式完成的。是否有可能重新排序node.js事件循環?
在我正在處理的應用程序上,我每30分鐘就會轉儲一堆基於一些網頁抓取請求操縱數據庫的異步調用。我不在乎這些是否需要一兩分鐘才能完成,因爲我只會每30分鐘致電一次,這些電話的數量不會改變。
但是,如果用戶在兩分鐘內向服務器發出了GET
請求,我寧願讓它們在服務器完成處理所有網頁抓取時不要拖延時間。有沒有辦法將這些用戶請求快速追蹤到事件隊列的前端?
爲什麼你不能運行三個循環 - 一個用於抓取,另一個用於GET請求(主要處理傳入請求和相應路由)? – 2014-09-04 22:14:13
是否需要運行多個服務器,還是有辦法讓單個服務器創建多個事件循環? – ckersch 2014-09-04 22:17:30
根據下面提供的答案 - 確保您瞭解每個事件循環的異步工作方式。如果您希望運行多個事件循環,則需要產生多個服務器(nodejs進程),但只有在需要時纔會這樣做。如果你在一個進程中運行異步作業,它不應該影響你的GET請求(證明抓取作業真的是異步的) – 2014-09-04 22:30:16