小编Sou*_*Sur的帖子

即使遵循了最佳实践,仍然不断达到 GitHub 二级速率限制?

在我的应用程序中,我使用令牌向 GitHub 搜索 API 发出经过身份验证的请求。我每 2 秒发出一次请求,以保持在每分钟 30 个请求的主要速率限制内(因此不是同时进行),并且在进行实际的搜索 API 调用之前,我还会使用 GitHub 速率限制 API 验证每个请求。

即使在罕见的意外并发请求的情况下,它们也不太可能是为了同一个令牌。

我似乎遵循主要和次要最佳实践文档中提到的所有规则。尽管如此,我的应用程序仍然受到二级速率限制,我不知道为什么。谁能帮我解释为什么会发生这种情况?

编辑:

示例代码:

const search = async function(query, token) {
    var limitResponse;
    try {
        limitResponse = JSON.parse(await rp({
            uri: "https://api.github.com/rate_limit",
            headers: {
                'User-Agent': 'Request-Promise',
                'Authorization': 'token ' + token
            },
            timeout: 20000
        }));
    } catch (e) {
        logger.error("error while fetching rate limit from github", token);
        throw new Error(Codes.INTERNAL_SERVER_ERROR);
    }
    if (limitResponse.resources.search.remaining === 0) {
        logger.error("github rate limit reached to zero");
        throw new …
Run Code Online (Sandbox Code Playgroud)

rest github rabbitmq node.js github-api

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

github ×1

github-api ×1

node.js ×1

rabbitmq ×1

rest ×1