Получение и возобновление по идентификатору процесса в 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 процесса.
Буду очень признателен за любую помощь.