想象一下,我在application.conf
文件中定义了一个Duration值。文档中说它可以解析Durations,但我不知道如何解析。
timeout = 60 milliseconds
我可以直接将其解析为持续时间值吗?理想情况下,我想做一些类似的事情
val timeout = current.configuration.getMilliseconds("timeout")
(myActor ? GiveMeSomething)(timeout).mapTo[...]
但超时是CCD_ 2。谢谢你的提示。
Play的配置确实支持Duration、FiniteDuration和其他Scala类型。使用:
configuration.get[FiniteDuration]("path.to.duration")
Configuration.get
函数采用隐式ConfigLoader[A]
。Play有很多实现,并且很容易添加其他实现。
尝试getDuration(String,TimeUnit)方法。
val timeout = config.getDuration("timeout", TimeUnit.MILLISECONDS)
试试这样的东西:
import scala.concurrent.duration._
config.getMilliseconds("timeout").map(_.milliseconds)
这会给你一个Option[Duration]
;您可以获取/getOrElse以获得具体值。
您可以这样使用Duration apply方法:
Duration.apply(configuration.get[String]("timeout"))
然后在配置中,你会有这样的东西:
timeout = 15 seconds
我不相信您可以直接将其解析为持续时间值。
我通常有一个助手类/方法来为我做这件事,类似于这样:http://pierreandrews.net/posts/config-scala.html