我在 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 同一个部署的一部分。有没有解决这个问题的通用模式?