Comments (3)
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.
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.
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)
- Add ability to stream messages. HOT 1
- 'before' options returns too many things
- `it': couldn't guess app type (RuntimeError) in redd-0.9.0.pre.3
- :permalink is inaccessible on a comment
- Retrieving Comments using name HOT 1
- NoMethodError: undefined method `stream' for #<Redd::Models::Listing:0x00007fe99deb75b0> HOT 3
- Next page
- Redd::Models::Comment#new removed in 0.8.x and 0.9.x? HOT 1
- Ability to invite users to live threads HOT 1
- LazyLazer::MissingAttribute: `replies is missing for #<Redd::Models::Comment:0x00007fdb68aa5190>
- ArgumentError at Middleware.
- Redd::Models::Comment.from_id throwing key not found :author
- Retrieving list of Subreddit emojis HOT 1
- Unit Testing HOT 1
- flair_listing: cannot unmarshal HOT 1
- Token not refreshing
- Getting NoMethodError (undefined method `new' for nil:NilClass) HOT 1
- NoMethodError (undefined method `access_token' for #<Redd::Models::Access:0x00007fb75d2f95b0>): HOT 1
- Updating dependencies
- Abandoned Gem? Broken with Ruby 3.0 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from redd.