Запустите скрипт python в фоновом потоке, используя spring MVC - PullRequest
1 голос
/ 01 февраля 2020

У меня есть приложение Spring MVC, которое должно запустить скрипт python, который загружает ZIP-файл в API. Мне нужно отобразить страницу для пользователя и запустить скрипт python в фоновом режиме, чтобы почтовый индекс получал обновления, пока пользователь мог продолжать работу в приложении Spring.

    Thread t1 = new Thread(new Runnable() {
                @Override
                public void run() {
                    String[] cmd = {
                            "python",
                            "/Users/rasheenruwisha/final-year-proj/build.py",
                            "ARG 1",
                            "ARG 2",
                    };
                    try {
                        Runtime.getRuntime().exec(cmd);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            });
            t1.start();
            return modelAndView;

Это текущий подход, который я использую, я не получаю никаких ошибок, но сценарий не выполняется, есть ли что-то, что я делаю неправильно?

Ответы [ 2 ]

2 голосов
/ 01 февраля 2020

если вы используете Ubuntu, добавьте "sh" и "- c":

 String[] cmd = {
                            "sh",
                            "-c",
                            "python",
                            "/Users/rasheenruwisha/final-year-proj/build.py",
                            "ARG 1",
                            "ARG 2",
                        };
                        try {
                                Runtime.getRuntime().exec(cmd);
                             } catch (IOException e) {
                                e.printStackTrace();
                             }
1 голос
/ 01 февраля 2020

1.Вы также можете использовать орг. python .util.PythonInterpreter

    PythonInterpreter interpreter = new PythonInterpreter();
    try {
     interpreter.execfile("/Users/rasheenruwisha/final-year-proj/build.py","ARG 1,"ARG 
     2");
    } catch (Exception e) {
        e.printStackTrace();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...