這些助手創建您可以傳遞給 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。