Получение и возобновление по идентификатору процесса в Python 3

Я разрабатываю тестовое приложение на django для внутреннего использования вычислений. Я использую Octave (версия Matlab с открытым исходным кодом).

Идея заключается в том, чтобы предоставить пользователю веб-интерфейс, в котором пользователь будет вводить команды, а команды будут отправляться в бэкэнд, выполняться в октаве и возвращать результаты. Ключевым моментом является запоминание значений всех переменных, которые пользователь задал ранее, без обращения к базе данных, так как октава делает это автоматически.

Проблема, с которой я сталкиваюсь, заключается в том, что после возврата из бэкенда я теряю значения параметров.

По сути, я создаю shell-процесс в django view с помощью import subprocess; subprocess.run('a=2'). Я перехватываю вывод и отправляю его обратно в UI. И, допустим, пользователь посылает другую команду subprocess.run('a = a + 2'). Но на этот раз, когда я попытаюсь выполнить ее в бэкенде, я получу ошибку, потому что значение параметра a потеряно!!! Что еще хуже, несколько пользователей могут одновременно обращаться к этому приложению со своим набором данных и операций.

Теперь мой вопрос, как я могу получить ID процесса оболочки, созданной с помощью python, и возобновить работу позже, используя тот же ID процесса, и выполнить больше команд в этом процессе (используя ID процесса). А также процесс не должен быть убит автоматически, если я не сделаю это явно, используя ID процесса.

Буду очень признателен за любую помощь.

Вернуться на верх