在一個NodeJS服務器即時從其他Web服務器定期獲取圖片,並將它們存儲在一個特定的文件夾中。NodeJS - EMFILE異常 - 請求管道writeStream
林與此命令(在一個函數,它由定時器輪詢每10秒)執行此操作:
request(cameraRequestOptions).pipe(fs.createWriteStream("./campics/cam" + cameraId + "pic" + latestCameraPictureNumber + ".jpg"));
目標圖像文件的名稱被改變,由於「latestCameraPictureNumber」。
我有一個EMFILE異常的麻煩,奇怪的是,這隻發生在服務器上運行的一些Maschines,它似乎只發生在很長一段時間後。
正如我已經發現,這可能意味着即時通訊打開太多的FileStreams或套接字。所以即時通訊不知道如果我的管道做錯了什麼:我必須關閉WriteStream或請求?如何?
文檔說:
readable.pipe(目的地,[選項])#
目的地寫流的目的地將數據寫入
選項對象管選項
端布爾當讀者結束時結束編寫器。默認=真
所以我認爲它會自動關閉。
感謝您的任何幫助。
您是否曾嘗試在請求和文件流中添加一些事件處理程序,以分別檢查它們是否結束和完成?如果他們正在結束/結束,需要多長時間? – mscdex 2014-10-10 12:22:49