0

我在 heroku 上有一个现有的 webapp,需要将消息发送到队列。我想要一个工人来挑选消息并处理它们。在阅读了https://devcenter.heroku.com/articles/run-non-web-java-processes-on-heroku上的示例后,我认为通过 Procfile 运行另一个播放进程会很浪费,所以我制作了以下项目结构只使用 Maven 代替工人:

[git root]
   +--[play 2.0 app]
   |  + (project files)
   |  +-Procfile (web)  
   |
   +--[maven based worker]
      + (project files)
      +-Procfile (worker)

现在,如果我尝试将所有这些都推送到 heroku,它会惨遭失败。Heroku 认为这是一个 play 1.2.4 项目,然后就崩溃了。当我尝试指定一个 play 2.0 buildpack 时,它显示“未检测到支持 Cedar 的应用程序”。所以很明显heroku不喜欢我的目录结构。

我希望我的 play 应用程序和我的 maven worker 共享同一个 git 存储库,如果可能的话,成为 heroku 同一个部署的一部分。有没有解决这个问题的通用模式?

4

1 回答 1

1

您不能在 Heroku 上的单个应用程序中混合多个构建包。相反,您可以将这一切作为 Play 2 应用程序来完成。这是一个可以帮助您入门的示例项目:
https ://github.com/jamesward/play2-scheduled-job-demo

于 2012-10-10T13:42:56.433 回答