1

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

  1. 我有一个在 Heroku 上运行良好的 java play 网络应用程序。在 Procfile 中有一个 web:xxx 进程
  2. 在同一个应用程序中,我定义了一些工作。
    • 我有扩展 play.Job 的 MyJob 类
    • 我有一个 Main 类 while(true) 等待并执行 MyJob。

我的 Procfile 看起来像这样。

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

我明白,因为这不是一个 Maven 项目类和依赖目录不存在。

但是,我该如何设置工人:java xxxx command

4

2 回答 2

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 {
于 2012-12-13T00:09:38.380 回答
0

玩!作业在 Web 应用程序内运行。如果您想在您的 heroku 应用程序上使用它们 - 最好将它们嵌入到您的网络应用程序中,而无需启动专门的工作人员。有了这个,你只能在 heroku 上拥有 web dyno。

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

于 2012-12-13T07:42:38.757 回答