Heroku рабочий работа java playframework

Прочитав все статьи, я не смог найти решение своей проблемы.

  1. У меня есть веб-приложение java play, работающее на Heroku. С процессом web: xxx в Procfile
  2. В том же приложении я определил некоторые вакансии.
    • У меня есть класс 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 и они будут работать с приложением.

Другие вопросы по тегам