gpt4 book ai didi

r - 手动 API 速率限制

转载 作者:行者123 更新时间:2023-12-01 05:05:56 26 4
gpt4 key购买 nike

我正在尝试为 rgithub 编写手动限速功能包裹。到目前为止,这就是我所拥有的:

library(rgithub)

pull <- function(i){
commits <- get.pull.request.commits(owner = owner, repo = repo, id = i, ctx = get.github.context(), per_page=100)
links <- digest_header_links(commits)
number_of_pages <- links[2,]$page
if (number_of_pages != 0)
try_default(for (n in 1:number_of_pages){
if (as.integer(commits$headers$`x-ratelimit-remaining`) < 5)
Sys.sleep(as.integer(commits$headers$`x-ratelimit-reset`)-as.POSIXct(Sys.time()) %>% as.integer())
else
get.pull.request.commits(owner = owner, repo = repo, id = i, ctx = get.github.context(), per_page=100, page = n)
}, default = NULL)
else
return(commits)
}

list <- c(500, 501, 502)

pull_lists <- lapply(list, pull)

我的意图是如果 x-ratelimit-remaining变量低于某个阈值,脚本应该等到 x-ratelimit-reset 中指定的时间已经过去了,然后继续脚本。但是,我不确定这是否是 if else 的实际行为。设置我在这里。

该函数运行良好,但我怀疑它是否真的进行了速率限制,或者它是否以某种方式跳过了这些步骤。因此我问:a)我如何知道它是否真的进行了速率限制,b)如果没有,我该如何重写它以便它实际上进行速率限制?会是 while条件/循环也许更好?

最佳答案

您可以测试它是否会更改速率限制 5到足够大的数字并添加 Sys.sleep 的计时显示使用:

print(system.time(Sys.sleep(...)))

也就是说,该功能对我来说似乎没问题,不幸的是我无法轻松测试它,因为 rgithub 不适用于我的 R (3.1.3) 版本。

关于r - 手动 API 速率限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770297/

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