我使用Typesafe Config配置来获取如下环境变量:
service {
host = "localhost"
host = ${?HOST}
port = 8080
port = ${?PORT}
ports {
tcp = 6969
ws = 6696
}
}
在我的书中,我Boot.scala
写道:
val host = config.getString("service.host")
val portHTTP = config.getInt("service.port")
val rootService = system.actorOf(Props(new RootService()))
IO(Http) ! Http.Bind(rootService, interface = host, port = portHTTP)
这应该很好!我看到了heroku log
信息:
2014-08-30T17:39:38.867872+00:00 app[web.1]: [spray-blog-akka.actor.default-dispatcher-4] [akka://spray-blog/user/IO-HTTP/listener-0] Bound to localhost/127.0.0.1:25870
2014-08-30T17:40:37.007696+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
似乎我已经绑定到特定端口:Bound to localhost/127.0.0.1:25870
,但是60秒后Heroku仍然说我没有及时绑定到它!
我从Heroku提供的示例应用中复制并粘贴了我的启动脚本: web: target/start com.mturk.Boot -Dhttp.port=${PORT} -Dconfig.file=conf/application.conf
我不知道是什么问题!太沮丧了!!
我相信Heroku会告诉您必须使用的端口。您可以在Boot.scala中使用额外的代码从Heroku中获取$ PORT环境变量。
val myPort = Properties.envOrElse(“ PORT”,“ 8080”)。toInt //用于Heroku兼容性
IO(Http)(系统)!Http.Bind(rootService,“ 0.0.0.0”,port = myPort)
当然,您可能需要额外导入:
导入实用程序属性
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句