shishirsharma / Unthrottle

Rate limiting gem for ruby powered by Redis

Home Page:https://github.com/shishirsharma/Unthrottle

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unthrottle Build Status Coverage Status

Centralized rate limiting for ruby processes sharing a single API using Redis.

Installation

Add this line to your application's Gemfile:

gem 'unthrottle'

And then execute:

$ bundle

Or install it yourself as:

$ gem install unthrottle

Usage

require 'logger'
logger = Logger.new(STDOUT)
logger.level = Logger::DEBUG
Unthrottle.configure do |config|
  config.host = "localhost"
  config.port = "6379"
  config.db = "1"

  config.key = "google_geocoding_api"
  config.rate_limit_time = 3 # Millisecs
  config.limit = 3           # Number of api call during timeout

  config.logger = logger
end

(1..20).each do |count|
  Unthrottle.api(:timeout => 30) {
    logger.info count
  }
end

Development

After checking out the repo, run bin/setup to install dependencies. Then, run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

  1. Fork it ( https://github.com/shishirsharma/Unthrottle/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

About

Rate limiting gem for ruby powered by Redis

https://github.com/shishirsharma/Unthrottle

License:MIT License


Languages

Language:Ruby 98.3%Language:Shell 1.7%