Запуск второго процесса Java-приложения, отличного от веб-приложения, в Heroku

Мне было интересно, можно ли запустить не-веб-приложение Java в Heroku из веб-приложения Java? В основном я хочу выполнить команду для запуска jar-файла, отличного от веб-приложения:

Вызов чего-то подобного в Heroku для одного процесса:

Process proc = Runtime.getRuntime().exec("java -jar A.jar");

person Luke Vang    schedule 30.08.2017    source источник


Ответы (1)


Вы, вероятно, не хотите выполнять новый процесс из существующего процесса Java. Вместо этого вы должны создать новый тип процесса в Procfile вашего приложения, например:

web: java -jar webapp-runner.jar yourapp.war
worker: java -jar A.jar

Затем вы можете запустить рабочий процесс из интерфейса командной строки heroku run worker или сделать HTTP-вызов API Героку.

Я предполагаю, что вы используете heroku war:deploy, а это значит, что в настоящее время у вас, вероятно, нет Procfile. Возможно, вам придется переключиться на heroku jar:deploy и включить webapp-runner в ваше приложение вручную .

person codefinger    schedule 30.08.2017
comment
Знаете ли вы, можете ли вы передавать аргументы в работу? Например, передавать аргументы при выполнении jar в командной строке? - person Luke Vang; 30.08.2017
comment
Вы можете запустить heroku run "java -jar A.jar --option one", если вам нужна пользовательская команда. - person codefinger; 30.08.2017