我给用户一种灵活的方式来使用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