Git Product home page Git Product logo

Comments (3)

avinashbot avatar avinashbot commented on September 28, 2024

Apologies for the late reply. I was aware of the X-Ratelimit-* headers before I began working on the project. The problem with using the headers is that requests then end up getting sent in huge bursts, leaving no requests for the rest of the interval. With this method, most users will never have to worry about the rate limit class at all and requests get sent in equal intervals, so more data is collected. This is the method PRAW uses.

On the wiki's API page, it looks like they also recommend this approach right before the section about the headers.

Make no more than thirty requests per minute. This allows some burstiness to your requests, but keep it sane. On average, we should see no more than one request every two seconds from you.

They seem to recommend using the headers as a double-check, but as far as I know, reddit doesn't block you for overflowing that once in a while, so a request every two seconds seems fine to me. I'll close the issue, but if you have other reasons to think the other approach is better, I'll be happy to re-open the issue.

from redd.

avinashbot avatar avinashbot commented on September 28, 2024

Since I introduced a RateLimit#burst! method (which doesn't sleep for a certain number of requests), the rate limiting was no longer constant, so I had to figure out a way to still make it work. Then I remembered your issue and implemented the X-Ratelimit headers (see d68d96e). So thanks for your suggestion!

from redd.

krainboltgreene avatar krainboltgreene commented on September 28, 2024

Awesome!

On Sun Feb 22 2015 at 12:20:46 AM Avinash Dwarapu [email protected]
wrote:

Since I introduced a RateLimit#burst! method (which doesn't sleep for a
certain number of requests), the rate limiting was no longer constant, so I
had to figure out a way to still make rate limiting work. Then I remembered
your issue and implemented the X-Ratelimit headers (see d68d96e
d68d96e).
So thanks for your suggestion!


Reply to this email directly or view it on GitHub
#7 (comment).

from redd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.