Изоляция дочерних процессов с использованием контейнеров
Я пытаюсь реализовать сервер в Node Js, который одновременно принимает в качестве входных данных несколько файлов кода на других языках, таких как python, C++ и т. Д., Одновременно запускает их в дочернем процессе с использованием ExecFile и затем возвращает выходные данные. Тем не менее, я думаю, что если файл кода имеет проблемы, такие как бесконечные циклы или ошибки сегментации, это может повлиять на работоспособность моего сервера (ИЛИ СРОЧИТЬ ЕГО). Я искал в интернете, когда наткнулся на такие термины, как контейнеры, но я не уверен, как это поможет мне в этом контексте. Любое руководство будет высоко оценено.
1 ответ
Если под "контейнерами" вы подразумеваете Docker containers
тогда это невозможно. Вы не можете разделить процесс Node на дочерние процессы в других контейнерах.
если у файла кода есть проблемы, такие как бесконечные циклы или ошибки сегментации, это может повлиять на работоспособность моего сервера (ИЛИ СРОЧИТЬ ЭТО)
Это вы должны решить с помощью надлежащей обработки ошибок и ограничений по времени выполнения (в случае бесконечных циклов, например), но не с помощью дочерних процессов с намерением просто вывести их в случае сбоя.
одновременно запускает их в дочернем процессе
И вам не нужно запускать разные механизмы обработки файлов в отдельных дочерних процессах Node (даже если вы можете). Вы можете просто запустить их асинхронно (или одновременно) с обещаниями, например