heroku worker job java playframework

时间:2012-12-12 11:35:42

标签: java heroku playframework-1.x worker

阅读完所有文章后,我找不到解决问题的方法。

  1. 我有一个在Heroku上运行良好的java play web-app。使用Procfile中的web:xxx进程
  2. 在同一个应用程序中,我定义了一些Jobs。
    • 我有MyJob类,扩展了play.Job
    • 我有一个Main类,而(true)等待并执行MyJob。
  3. 我的Procfile看起来像这样。

    web:    play run --http.port=$PORT $PLAY_OPTS
    worker: java -cp target/classes;target/dependency/* jobs.MyJob
    

    据我所知,因为这不是maven项目,所以不存在类和依赖目录。

    但是,我该怎样设置工人:java xxxx command

2 个答案:

答案 0 :(得分:0)

您是否在注释您的工作类?要在Play开始时开始工作,只需执行以下操作:

@OnApplicationStart
public class Bootstrap extends Job {

或使用@Every或@On注释:

@On("0 0 12 * * ?")
public class Bootstrap extends Job {

@Every("1h")
public class Bootstrap extends Job {

答案 1 :(得分:0)

播放!乔布斯在网络应用中运行。 如果您想在heroku应用程序中使用它们 - 最好将它们嵌入到您的Web应用程序中,而无需启动专用工作程序。有了它,你只能在he​​roku上使用web dyno。

使用@OnApplicationStart注释您的工作,它们将与应用程序一起运行。