2017-08-08 51 views
1

我目前正在利用所謂XLSX如何使同步功能在異步的NodeJS

我必須分析大尺寸的Excel解析庫excel文件和問題是XLSX只支持同步readFile請求。因此,當發出多個http請求時,XLSX讀取功能會阻止其他請求,導致用戶體驗非常糟糕。我目前使用expressJS作爲我的框架。有沒有辦法使該功能異步,而不必更改Excel閱讀庫?

感謝

+1

值得指出的是,除了xlsx之外,您還有其他解析器選項。如果你想要一個異步版本,試試'excel',它會異步處理xlsx文件。 – Paul

+0

@Paul謝謝。我會考慮的 – forJ

回答

3

我只知道有三種選擇:

  1. 重寫XLSX庫使用異步I/O。
  2. 創建一個工作隊列和幾個子進程,並僅在子進程中運行XLSX工作。
  3. 選擇使用異步I/O的不同庫。

沒有辦法讓一個使用同步I/O的函數在不重寫或移動到另一個進程的情況下神奇地變爲異步。

+0

謝謝。第二選擇看起來是一個好方法,否則第三。每次發出新請求時,如果我決定產生一個新的讀取進程,我是否應該知道有什麼? – forJ

+0

@serendipity - 如果沒有工作進程準備就緒,您可能希望對打開的進程數加上限制並使用隊列。這可以通過導致您創建過多進程來防止DOS攻擊。 – jfriend00

+0

謝謝,我會確保這一點 – forJ