Изоляция дочерних процессов с использованием контейнеров - PullRequest
0 голосов
/ 07 февраля 2019

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

1 Ответ

0 голосов
/ 07 февраля 2019

Если под «контейнерами» вы подразумеваете Docker containers, то это невозможно.Вы не можете разделить процесс Node на дочерние процессы в других контейнерах.

Если файл кода имеет проблемы, такие как бесконечные циклы или ошибки сегментации, это может повлиять на работоспособность моего сервера (ИЛИ СБРОСИТЬ ЕГО)

Это необходимо решить с помощьюправильная обработка ошибок и ограничения по времени выполнения (в случае бесконечных циклов, например), но не для дочерних процессов с намерением просто сбросить их в случае сбоя.

одновременно запускает их в дочернем процессе

И вам не нужно запускать разные механизмы обработки файлов в отдельных дочерних процессах Node (даже если вы можете).Вы можете просто запустить их асинхронно (или одновременно) с обещаниями, например

...