我有一个在heroku上运行的Play 1.2.5应用程序,我想将所有作业换成工作器dyno,因此它们不能与web dynos一起扩展 .
要做到这一点,我需要区分,如果应用程序在Web或工作人员dyno上运行 .
有没有办法通过使用procfile传递命令行参数来实现这一点?
目前我看到,通过传递自定义CLI参数,无法创建JVM ...
提前谢谢你!
Heroku使用 web 作为web dynos的进程类型 .
web
您需要在 Procfile 中声明您的dynos,您可以在其中指定process types .
Procfile
您可以使用任何您喜欢的标识符,但建议使用 worker ,这似乎是一个很好的约定 .
worker
然后,您可以使用以下方法缩放各个dynos类型:
heroku ps:scale web=1
要么
heroku ps:scale worker=1
此外,this post has a good answer可能会帮助你 .
好的,我自己找到了:
通过在proc文件中添加-D参数,我可以确定正在运行的环境播放 .
所以我的procfile看起来像:
web: play run --http.port=$PORT $PLAY_OPTS worker: play run --http.port=$PORT $PLAY_OPTS -Dprocesstype=worker
通过使用
System.getProperty("processtype");
我可以确保,我正在工作的dyno并且只在那时处理我的工作 .
2 回答
Heroku使用
web
作为web dynos的进程类型 .您需要在
Procfile
中声明您的dynos,您可以在其中指定process types .您可以使用任何您喜欢的标识符,但建议使用
worker
,这似乎是一个很好的约定 .然后,您可以使用以下方法缩放各个dynos类型:
要么
此外,this post has a good answer可能会帮助你 .
好的,我自己找到了:
通过在proc文件中添加-D参数,我可以确定正在运行的环境播放 .
所以我的procfile看起来像:
通过使用
我可以确保,我正在工作的dyno并且只在那时处理我的工作 .