gpt4 book ai didi

scala - 如何将 `getOrWaitUntilNonEmpty` 作为单行?

转载 作者:行者123 更新时间:2023-12-03 20:15:45 28 4
gpt4 key购买 nike

我有一个看起来像这样的高级代码结构:

val block: (=> Option[Seq[String]]) = ...
val matches = block().get.toArray
问题是此代码可能会失败,即 .get正在 None取决于时间,例如我是页面- 谷歌太频繁了,然后我会等待并重试......
我可以像这样等待,即在 11-16 秒之间随机等待:
val random = new Random()
Thread.sleep((11000 * random.nextFloat() + 6000).ceil.toInt)
[waiting] 循环直到执行 block 的结果的优雅单行方式是什么?不是空的吗?就像是:
val timeInMillis = (11000 * random.nextFloat() + 6000).ceil.toInt
block().getOrWaitUntilNonEmpty(timeInMillis).toArray

最佳答案

试试 softwaremill/retry 像这样

retry.Pause(max = 10, Defaults.delay)(odelay.Timer.default) {
block
}

有依赖性
"com.softwaremill.retry"  %% "retry"       % "0.3.2"
"com.softwaremill.odelay" %% "odelay-core" % "0.3.0"

关于scala - 如何将 `getOrWaitUntilNonEmpty` 作为单行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56256945/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com