如何确定播放应用程序是否在heroku上的worker dyno上运行?

如何确定播放应用程序是否在heroku上的worker dyno上运行?,heroku,playframework,worker,Heroku,Playframework,Worker,我在heroku上运行了一个play 1.2.5应用程序,我想把所有的工作都换成一个worker dyno,这样它们就不会和web dyno一起扩展 要做到这一点,我需要区分应用程序是在web上运行还是在worker dyno上运行 有没有办法通过使用procfile传递命令行参数来实现这一点 目前我看到,通过传递自定义CLI参数,JVM无法创建 提前谢谢你 Heroku使用web作为web动态的处理类型 您需要在Procfile中声明dynos,您可以在其中指定它们的名称 您可以使用任何您喜欢

我在heroku上运行了一个play 1.2.5应用程序,我想把所有的工作都换成一个worker dyno,这样它们就不会和web dyno一起扩展

要做到这一点,我需要区分应用程序是在web上运行还是在worker dyno上运行

有没有办法通过使用procfile传递命令行参数来实现这一点

目前我看到,通过传递自定义CLI参数,JVM无法创建


提前谢谢你

Heroku使用
web
作为web动态的处理类型

您需要在
Procfile
中声明dynos,您可以在其中指定它们的名称

您可以使用任何您喜欢的标识符,但建议使用
worker
,这似乎是一个很好的惯例

然后,可以使用以下方法缩放各个dynos类型:

heroku ps:scale web=1


而且,这可能会对你有所帮助。

好的,我自己找到的:

通过向procfile添加-D参数,我可以确定播放正在运行的环境

所以我的procfile看起来像:

web: play run --http.port=$PORT $PLAY_OPTS
worker: play run --http.port=$PORT $PLAY_OPTS -Dprocesstype=worker
利用

System.getProperty("processtype");

我可以确保,我使用的是worker dyno,然后才处理我的作业。

嗨,谢谢你的回答,但我的问题只是如何读取正在运行的进程类型play,因为我希望play作业只在worker dyno上运行。好吧,我对play了解得不够,不知道你的意思,但这是你在Heroku上配置它的方式。您可以使用heroku ps查看当前运行的内容
System.getProperty("processtype");