Skip to main content

Python HTTP requests throttler

Project description

RequestsThrottler: HTTP requests throttler

RequestsThrottler is an Apache2 Licensed HTTP library, written in Python, and powered by futures and Requests. See the full documentation.

With RequestsThrottler you can easily throttle HTTP requests! After having created your throttler with a delay of your choice, you just have to:

  1. Start the throttler
  2. Submit your requests
  3. Shutdown the throttler

Here's an example:

import requests
from requests_throttler import BaseThrottler

bt = BaseThrottler(name='base-throttler', delay=1.5)
request = requests.Request(method='GET', url='http://www.google.com')
reqs = [request for i in range(0, 5)]

bt.start()
throttled_requests = bt.multi_submit(reqs)
bt.shutdown()

responses = [tr.response for tr in throttled_requests]

Too hard? Then just submit your requests inside a with statement! Here's an example:

import requests
from requests_throttler import BaseThrottler

with BaseThrottler(name='base-throttler', delay=1.5) as bt:
    request = requests.Request(method='GET', url='http://www.google.com')
    reqs = [request for i in range(0, 5)]
    throttled_requests = bt.multi_submit(reqs)

responses = [tr.response for tr in throttled_requests]

Installation

Use pip to install RequestsThrottler:

$ pip install RequestsThrottler

Features

  • BaseThrottler a simple throttler with a fixed amount of delay

Release History

0.2.5 (2019-02-18)

  • Unpinned deps in setup.py

0.2.4 (2014-07-13)

  • Fixed wrong request preparation (thanks to bleedinge for reporting the problem)

0.2.3 (2014-02-16)

  • Fixed installation via pip (thanks to Gavin D'mello for reporting the problem)

0.2.2 (2014-01-15)

  • Added possibility to use a user-defined session when using BaseThrottler
  • Fixed example, updated README

0.2.1 (2014-01-14)

  • Added implicit way to set delay for BaseThrottler by using reqs_over_time

0.2.0 (2014-01-04)

  • Reorganized modules
  • Changed submit method signature in favor of two methods: submit and multi_submit
  • Added documentation

0.1.1 (2013-12-31)

  • Fixed not working previous release
  • Changed example.py

0.1.0 (2013-12-30)

  • BaseThrottler a simple throttler with a fixed amount of delay

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

RequestsThrottler-0.2.5.tar.gz (13.9 kB view hashes)

Uploaded Source

Built Distribution

RequestsThrottler-0.2.5-py2-none-any.whl (16.1 kB view hashes)

Uploaded Python 2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page