Запуск и наблюдение за удаленным выполнением сценариев Python с сайта Django

Я запускаю Django-сайт, на котором пользователь может выполнять некоторые легкие вычисления. Этот сайт размещен в контейнере Docker на одном из наших серверов.

Теперь я хотел бы добавить возможность для пользователей запускать некоторые более сложные симуляции с того же сайта. Эти симуляции должны работать на выделенной вычислительной машине (они будут работать параллельно в течение нескольких часов/дней) под сервером Ubuntu в той же сети.

  • Каким будет наилучший способ достичь этого? Отправлять вычисления на сервер вычислений и автоматически отправлять их обратно в Django?
  • Как я могу отслеживать статус вычисления (ожидание, вычисление, завершение) из экземпляра Django?
  • Нужно ли использовать планировщик заданий на сервере вычислений?

Это близко к этому вопросу, который был задан в 2014 году, поэтому здесь может быть больше актуальных решений.

"Лучший" зависит от множества местных решений, с которыми мы не можем помочь.

Django может использовать Python subprocess для выполнения любой команды оболочки Linux. Поэтому, как только вы решите, как отправить задание на локальную машину из командной строки, вы сможете сделать это с вашего сервера. (Примечание, возможно, потребуется способ указать пользователя linux, соответствующего Django request.user)

Вы также можете предоставить API для обновления статуса и возврата результатов на сервер. Это будет мало отличаться от обычного представления POST, возможно, с полем FileField / request.FILES для отправки файлов результатов.

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