Я предоставляю своим пользователям гибкий способ преобразования данных с использованием JavaScript, выполняемых с помощью Node.js на стороне сервера. С этой конструкцией, есть 3 проблемы, рассмотреть следующие вопросы:Как установить максимальное время выполнения скрипта с node.js?
безопасности: Я решил проблему безопасности с помощью sandbox, чтобы избежать использования собственных библиотек Node.js.
Ресурсы: мы можем легко установить максимальное использование памяти, используя опцию v8
--max_executable_size
. Что касается использования ЦП, я посмотрю, как управлять им с помощьюcpulimit
илиrenice
, теперь это не имеет значения.Время: мне нужно ограничить время выполнения моих скриптов, чтобы они не работали как зомби-зомби. И здесь я застреваю.
Я пытался что-то вроде:
node -e '
setTimeout(function() {
console.log("timeout");
process.exit;
}, 5000);
console.log("begin");
while (1);
'
Но этот код отображается только «начать», кажется, что мой тайм-аут не вызываются. Любая идея?
Это ваши скрипты? Или вы пытаетесь ограничить выполнение произвольного кода? Вы пытаетесь установить лимит времени для всего приложения? Или кусок кода внутри? – Brad
Я хочу ограничить выполнение фрагмента кода внутри. –
ваш "while (1);" блокирует выполнение, удаляет его, и вы увидите как начало, так и тайм-аут. –