这些助手创建您可以传递给 insistently()
和 slowly()
的速率设置。您还可以通过 rate_sleep()
在您自己的函数中使用它们。
用法
rate_delay(pause = 1, max_times = Inf)
rate_backoff(
pause_base = 1,
pause_cap = 60,
pause_min = 1,
max_times = 3,
jitter = TRUE
)
is_rate(x)
参数
- pause
-
尝试之间的延迟(以秒为单位)。
- max_times
-
尝试的最大请求数。
- pause_base, pause_cap
-
rate_backoff()
使用指数 back-off,以便每个请求等待pause_base * 2^i
秒,最多等待pause_cap
秒。 - pause_min
-
退避中等待的最短时间;通常仅当您需要暂停时间少于一秒时才需要(这可能对服务器不利,请谨慎使用!)。
- jitter
-
是否在等待时间引入随机抖动。
- x
-
要测试的对象。
例子
# A delay rate waits the same amount of time:
rate <- rate_delay(0.02)
for (i in 1:3) rate_sleep(rate, quiet = FALSE)
#> Retrying in 0.02 seconds.
#> Retrying in 0.02 seconds.
# A backoff rate waits exponentially longer each time, with random
# jitter by default:
rate <- rate_backoff(pause_base = 0.2, pause_min = 0.005)
for (i in 1:3) rate_sleep(rate, quiet = FALSE)
#> Retrying in 0.047 seconds.
#> Retrying in 0.29 seconds.
相关用法
- R purrr rerun 多次重新运行表达式
- R purrr rbernoulli 从伯努利分布生成随机样本
- R purrr reduce 通过迭代应用二元函数将列表减少为单个值
- R purrr accumulate 累积向量缩减的中间结果
- R purrr imap 将函数应用于向量的每个元素及其索引
- R purrr list_transpose 转置列表
- R purrr as_vector 将列表强制转换为向量
- R purrr map_if 有条件地将函数应用于向量的每个元素
- R purrr map2 映射两个输入
- R purrr array-coercion 强制数组列出
- R purrr auto_browse 包装一个函数,以便在出错时自动 browser()
- R purrr pluck 安全地获取或设置嵌套数据结构深处的元素
- R purrr insistently 将函数转换为等待,然后在错误后重试
- R purrr map_depth 在给定深度映射/修改元素
- R purrr list_simplify 将列表简化为原子或 S3 向量
- R purrr quietly 包装一个函数来捕获副作用
- R purrr list_flatten 压平列表
- R purrr pmap 同时映射多个输入(“并行”)
- R purrr possibly 包装函数以返回值而不是错误
- R purrr head_while 查找全部满足谓词的头/尾。
- R purrr keep_at 根据元素的名称/位置保留/丢弃元素
- R purrr keep 根据元素的值保留/丢弃元素
- R purrr transpose 转置列表。
- R purrr flatten 将列表的列表展平为简单的向量
- R purrr every 列表中的每个元素、部分元素还是没有一个元素满足谓词?
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Create delaying rate settings。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。