Skip to main content

a batch based request package with retry stratgy that enables you to send X requests concurrently at rate of Y requests/execution

Project description

Request Ray

PyPI version Build Status: License: MIT

a batch based request package with retry stratgy that enables you to send X requests concurrently at rate of Y requests/execution with max retries for each N

Setup

pip install request-ray

How to use

from request_ray import rray

requests = [{
    'method': 'POST',
    'url': 'https://google.com',
    'kwargs': {'data': json.dumps({'hello': 'world'}), 'headers': {'alpha': 'beta'}}
}, {
    'method': 'GET',
    'url': 'https://facebook.com',
    'kwargs': {}
}]

batch_size = 2 # max no of requests to send at a time
retry_policy = 3 # how many times to retry failed requests

responses rray.send_requests(requests, batch_size, retry_policy)
print(responses) # array of expected responses with structure in each element: {'index': 0, 'response': standard_response_object}

How it works

As shown below:

  • 6 requests are queued
  • first 3 are started
  • 1,3 get 200 ok and 2 get 500 so it's enqueued again
  • 2 is retried with next requests till it's statisfied or retry max reached

Diagram

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

request_ray-0.1.2.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

request_ray-0.1.2-py3-none-any.whl (5.0 kB view hashes)

Uploaded Python 3

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