2

想象一下,我的application.conf文件中定义了一个 Duration 值。文档说它可以解析持续时间,但我看不出如何。

timeout = 60 milliseconds

我可以直接将其解析为持续时间值吗?理想情况下,我想做这样的事情

val timeout = current.configuration.getMilliseconds("timeout")
(myActor ? GiveMeSomething)(timeout).mapTo[...]

但超时是一个Option[Long]. 感谢您的任何提示。

4

5 回答 5

1

Play 的配置确实支持 Duration、FiniteDuration 和其他 Scala 类型。用途: configuration.get[FiniteDuration]("path.to.duration") Configuration.get函数采用隐式ConfigLoader[A]. Play 有很多实现,并且很容易添加额外的实现。

于 2018-01-24T12:24:39.983 回答
0

尝试 getDuration(String, TimeUnit) 方法。

val timeout = config.getDuration("timeout", TimeUnit.MILLISECONDS)
于 2016-01-09T09:49:23.880 回答
0

尝试这样的事情:

import scala.concurrent.duration._
config.getMilliseconds("timeout").map(_.milliseconds)

那会给你一个Option[Duration]; 您可以通过 get/getOrElse 获得具体值。

于 2018-01-23T22:32:56.267 回答
0

您可以像这样使用 Duration 应用方法:

Duration.apply(configuration.get[String]("timeout"))

然后在配置中你会有这样的东西:

timeout = 15 seconds
于 2022-02-02T17:38:28.207 回答
-5

我不相信您可以将其直接解析为持续时间值。

我通常有一个帮手类/方法为我做这件事,类似于:http: //pierreandrews.net/posts/config-scala.html

于 2016-01-09T09:12:41.543 回答