如何将 `getOrWaitUntilNonEmpty` 作为单个衬垫执行?

2023-12-25

我有一个高级代码结构,如下所示:

val block: (=> Option[Seq[String]]) = ...
val matches = block().get.toArray

问题是这段代码可能会失败,即.get being None取决于时间,例如我是页-scraping谷歌太频繁,然后我会等待并重试......

我可以像这样等待,即在 11-16 秒之间随机等待:

val random = new Random()
Thread.sleep((11000 * random.nextFloat() + 6000).ceil.toInt)

什么是一种优雅的单行方式来[等待]循环直到执行结果block不是空的吗?就像是:

val timeInMillis = (11000 * random.nextFloat() + 6000).ceil.toInt
block().getOrWaitUntilNonEmpty(timeInMillis).toArray

Try softwaremill/retry https://github.com/softwaremill/retry like so

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"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 `getOrWaitUntilNonEmpty` 作为单个衬垫执行? 的相关文章

  • Scala Monad - 完整的示例[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么Scala语言中的++:运算符这么奇怪?

    我正在使用 运算符来获取两个集合的集合 但是我使用这两种方法得到的结果不一致 scala gt var r Array 1 2 r Array Int Array 1 2 scala gt r Array 3 scala gt r res2
  • 在 Scala 中生成数字的质因数

    如何在 Scala 中生成整数的因子 这是我的看法1 def factorize x Int List Int def foo x Int a Int List Int if a gt Math pow x 0 5 return List
  • 副作用是纯函数中找不到的一切吗?

    可以肯定地说 以下二分法成立 每个给定的函数是 要么纯粹 或有副作用 如果是这样 函数的 副作用就是纯函数中找不到的任何东西 这很大程度上取决于您选择的定义 可以公平地说 函数是pure or impure 纯函数始终返回相同的结果并且不会
  • Scala中如何将DataFrame转换为RDD?

    有人可以分享一下如何转换dataframe to an RDD Simply val rows RDD Row df rdd
  • Scalaz 7 Iteratee 处理大型 zip 文件(OutOfMemoryError)

    我正在尝试使用 scalaz iteratee 包在恒定空间中处理大型 zip 文件 我需要对 zip 文件中的每个文件执行一个长时间运行的进程 这些进程可以 并且应该 并行运行 我创建了一个EnumeratorT使每个膨胀ZipEntry
  • 《使用 Apache Flink 进行流处理》如何从 IntelliJ 运行书籍代码?

    如中所述这个帖子 https stackoverflow com questions 61043860 how to run first example of apache flink我无法成功运行 使用 Apache Flink 进行流处
  • Liftweb 环境中的后台任务

    我必须编写守护进程 并且我想使用模型来连接到数据库和一些有用的 Lift 类 是否可以运行 Rails 的 rake 任务的模拟 Scala 社区组上也有类似的问题 答案是使用Actors来做后台处理
  • Spark RDD默认分区数

    版本 Spark 1 6 2 Scala 2 10 我正在执行以下命令spark shell 我试图查看 Spark 默认创建的分区数量 val rdd1 sc parallelize 1 to 10 println rdd1 getNum
  • scala/spark 代码不允许在 hive 中添加列

    如果源数据有新列 我尝试在 Hive 表中添加一列 所有新列的检测都运行良好 但是 当我尝试将列添加到目标表时 我收到此错误 for f lt df schema fields if f name chk spark sqlContext
  • 对于空列表,max() 应该返回什么?

    Got java util NoSuchElementException head of empty list所以我试着检查一下 但现在我明白了 info max of a few numbers FAILED info 0 did not
  • Scala Array.apply 有何魔力

    来自 scala 2 10 4 的 array scala Array定义为 final class Array T length Int extends java io Serializable with java lang Clonea
  • 最小重复子串

    我正在看 Perl代码高尔夫页面 http www perlmonks org node id 82878 不要问为什么 并遇到了这个 第 3 洞 最小重复图案 编写一个子例程 它接受一个字符串 该字符串可能包含 重复模式 并返回最小的重复
  • 使用原始类型模拟案例类

    考虑以下类型结构 trait HasId T def id T case class Entity id Long extends HasId Long 比方说 我们想在一些测试中模拟实体类 val entityMock mock Enti
  • 使用 Akka 玩 2.5 - 找不到参数超时的隐式值:akka.util.Timeout

    我正在尝试使用 Play 2 5 测试 Akka 但遇到了一个似乎无法解决的编译错误 我正在关注 Play 文档中的此页面 https playframework com documentation 2 5 x ScalaAkka http
  • 如何从 SparkSQL DataFrame 中的 MapType 列获取键和值

    我的镶木地板文件中有数据 该文件有 2 个字段 object id String and alpha Map lt gt 它被读入 SparkSQL 中的数据帧 其架构如下所示 scala gt alphaDF printSchema ro
  • 使用 Spray-json 解析简单数组

    我正在尝试 但失败了 了解 Spray json 如何将 json feed 转换为对象 如果我有一个简单的 key gt value json feed 那么它似乎可以正常工作 但是我想要读取的数据出现在如下列表中 name John a
  • 对 Scala Not Null 特征的库支持

    Notice 从 Scala 2 11 开始 NotNull已弃用 据我了解 如果您希望引用类型不可为空 则必须混合魔法NotNull特征 编译器会自动阻止你输入null 可以值在里面 看到这个邮件列表线程 http www nabble
  • 使用 scala 集合 - CanBuildFrom 麻烦

    我正在尝试编写一个接受任何类型集合的方法CC 并将其映射到一个新的集合 相同的集合类型但不同的元素类型 我正在挣扎 基本上我正在尝试实施map but 不在集合本身上 问题 我正在尝试实现一个带有签名的方法 它看起来有点像 def map
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF

随机推荐

  • 构建和使用 Qt Embedded 的经验

    我目前正在尝试在 ARM 架构的 Ubuntu 机器上编译和构建用于嵌入式 Linux 的 QT 到目前为止 我在尝试制作时遇到了很多错误 最大的一个是 2000 行 C 函数 它导致了编译器错误 其他人对此有什么经验 您是如何解决这个问题
  • iOS 4.1 中的 NSDate 格式

    iOS 4 0 中的 NSDate date 用于返回日期 格式为 2010 09 15 09 28 26 0530 但现在在 iOS 4 1 中 它返回以下格式的日期 2010 09 15 09 28 26 格林威治标准时间 在我的应用程
  • 在Java中向日期添加天数[重复]

    这个问题在这里已经有答案了 如何在 Java 中为日期添加 x 天 例如 我的日期是01 01 2012 using dd mm yyyy作为格式 添加 5 天 输出应为06 01 2012 SimpleDateFormat sdf new
  • Google电子表格:在单元格值更改时运行脚本

    在电子表格中 我有两张表 和计算器 当我更改 上的值时 B1 即工作表的单元格 B1 我想运行脚本 更改 实际上清除 计算器 的值 B3 即工作表 计算器 的单元格 B3 这是我的代码 我通过电子表格 gt 工具 gt 脚本编辑器创建它 所
  • 通过 AppCompatDelegate 进行 Android Jetpack Compose 语言切换不起作用

    我正在尝试为我正在开发的应用程序构建一个应用程序内语言切换器 但我已经尝试了 Stackoverflow 上几乎所有可用的方法 我也尝试过这里的官方指南https developer android com guide topics res
  • 设计需要根据泛型类型进行重载的 API 的可能性有哪些?

    在给定的班级中Example a 我需要以下两个功能可用 void doSomething Supplier a b void doSomething Supplier b 实现这一目标的可能性有哪些 我知道以下方法 给函数起不同的名字 对
  • 捕获来自 Web 浏览器控件的所有请求和响应?

    有没有办法捕获并打印出来自 Web 浏览器控件的所有请求和响应 包括异步请求 你有没有想过使用Fiddler http www fiddler2 com fiddler2 他们甚至还有一个API http www fiddler2 com
  • Qt 没有属性“AlignCenter”[重复]

    这个问题在这里已经有答案了 我在 Python 3 5 上使用 PyQt5 我想做一个QLabel带有居中文本的小部件 因此 我称之为setAlignment方法与AlignCenter flag 这是一个 MWE import sys f
  • HTML 中的视口是什么。

    HTML 中的视口是什么 您能否举一些有关如何访问视口详细信息的示例 视口是用户当前可以看到的网页部分 滚动条移动视口以显示页面的其他部分 按照本文的说明在 Javascript 中获取视口尺寸 http andylangton co uk
  • 在mysql数据库中存储大量数字的问题

    我正在使用 mysql db 来保存 id 一切正常 但现在像这样的id 10000000754987 存储为1 0000000754987E 14 我该如何解决它 该字段设置为 varchar 255 个字符限制 我很感激任何帮助 Tha
  • 确定模板中结构或元组的成员偏移量

    我想编写一个模板函数 将表写入 HDF5 文件 签名应该类似于 template
  • 使用 Codeigniter 发送电子邮件时出现问题 - 在邮件正文中发送标头

    codeigniter 中的电子邮件类出现奇怪的问题 当我直接向我的 Gmail 帐户电子邮件地址发送电子邮件时 效果很好 但是 如果我将电子邮件发送到不同的电子邮件地址并使用 POP3 将该电子邮件地址导入到 gmail 中 则由于某种原
  • 从分数列表生成标准竞赛排名

    给定分数列表 例如 5 5 4 2 2 0 我希望返回标准竞赛排名 1 1 3 4 4 6 From 维基百科的排名页面 http en wikipedia org wiki Ranking 这里是SRC的总结 标准竞赛排名 1224 排名
  • 如何在流星中响应式聚合 mongodb

    我是流星新手 我建立了发布 订阅的概念 我在反应式执行聚合时遇到以下错误 客户端代码 import Template from meteor templating import ReactiveVar from meteor reactiv
  • 在我的 virtualenv 中,我需要对所有命令使用 sudo

    我设置了一个virtualenv 这是有效的 但由于某种原因我需要使用sudo对于像这样简单的命令mkdir 显然我做错了什么 知道它可能是什么吗 Thanks 检查目录权限和所有者并给出 sudo chown R me me virtua
  • 模拟无法与 RSpec 和 Devise 配合使用

    我目前正在使用 RSpec 2 开发 Rails 3 Web 应用程序 并且我们使用 Devise 进行身份验证 我们的一个 很快还有许多 控制器要求用户登录 我知道 Devise 提供了sign in测试助手 但它可以与 RSpec 或
  • 在JPanel中调用setEnabled(false)的原因

    我现在在 Swing 上工作了一段时间 但在实践中从未遇到过需要打电话的情况setEnabled false in JPanel 尽管如此 我有时会在一些复杂的图形用户界面中看到这样的代码 但我真的不明白为什么有人想用它 所以 请给我一些现
  • 使用 React Router v4 / v5 的嵌套路由

    我目前正在努力使用 React Router v4 来嵌套路由 最接近的例子是路由配置React Router v4 文档 https react router now sh 我想将我的应用程序分成两个不同的部分 前端和管理区域 我在想这样
  • 按特定顺序执行测试套件

    我正在使用 maven failsafe 插件来触发 testng 套件 其配置类似于
  • 如何将 `getOrWaitUntilNonEmpty` 作为单个衬垫执行?

    我有一个高级代码结构 如下所示 val block gt Option Seq String val matches block get toArray 问题是这段代码可能会失败 即 get being None取决于时间 例如我是页 sc