Я пытаюсь создать REPL на основе браузера для Python, как в REPL.it (http://repl.it/). Когда пользователь нажимает «Выполнить код», я использую node-pty для создания дочернего процесса, который создает интерактивный экземпляр Python REPL в контейнере Docker, например:
введите описание изображения здесь
Как узнать, когда программа завершает выполнение, не дожидаясь завершения процесса (т.е. process.on ('exit', {...}), поскольку после выполнения программы пользователи могут по-прежнему взаимодействовать с методами, объявленными в программе, через оболочку GUI (чтобы он был интерактивным, это означает, что процесс никогда не завершается)?
Вещи, которые я пробовал: (1 ) Опрос каждые 1 секунду для проверки использования ЦП контейнера через docker stats
, но это оказывается очень медленным и дает сбой Docker легко