Heroku рабочий работа java playframework
Прочитав все статьи, я не смог найти решение своей проблемы.
- У меня есть веб-приложение java play, работающее на Heroku. С процессом web: xxx в Procfile
- В том же приложении я определил некоторые вакансии.
- У меня есть класс MyJob, который расширяет play.Job
- У меня есть класс Main пока (true) жду и выполню MyJob.
мой Procfile выглядит следующим образом.
web: play run --http.port=$PORT $PLAY_OPTS
worker: java -cp target/classes;target/dependency/* jobs.MyJob
Я понимаю, что, поскольку это не maven проект классов и каталогов зависимостей не существует.
Но тогда, как мне установить рабочий: java xxxx command
?
2 ответа
Решение
Аннотируете ли вы свои рабочие классы? Чтобы начать работу, когда начинается воспроизведение, просто выполните:
@OnApplicationStart
public class Bootstrap extends Job {
Или используйте аннотации @Every или @On:
@On("0 0 12 * * ?")
public class Bootstrap extends Job {
@Every("1h")
public class Bootstrap extends Job {
Играть! Задания запускаются внутри веб-приложения. Если вы хотите использовать их в своем приложении heroku - лучше будет просто встроить их в ваше веб-приложение, не вызывая выделенного работника. При этом вы можете иметь только веб-дино на героку.
Просто комментируйте свою работу с @OnApplicationStart
и они будут работать с приложением.