我給用戶一種靈活的方式來使用JavaScript來轉換數據,並在服務器端使用Node.js執行。與設計,有三個問題需要考慮:如何使用node.js設置腳本的最大執行時間?
安全:我使用sandbox,以避免本地的Node.js庫的使用解決了安全問題。
資源:我們可以使用v8選項
--max_executable_size
輕鬆設置最大內存使用量。關於CPU使用率,我會看到如何使用cpulimit
或renice
來管理它,現在它並不重要。時間:我需要限制我的腳本的執行時間,以避免它們作爲hangry殭屍運行。在這裏,我卡住了。
我想是這樣的:
node -e '
setTimeout(function() {
console.log("timeout");
process.exit;
}, 5000);
console.log("begin");
while (1);
'
但這個代碼僅顯示「開始」,似乎我的超時永遠不會被調用。 有什麼想法?
這些是你的腳本嗎?還是你想限制任意代碼的執行?你是否想要在整個應用程序上設置一個時間限制?或者內部的一段代碼? – Brad 2013-03-02 16:19:00
我想限制其中一段代碼的執行。 – 2013-03-02 16:20:23
你的「while(1);」阻止執行,刪除它,你會看到開始和超時。 – 2013-03-02 16:21:06