Skip to main content

Middleware which implements a retryable exceptions

Project description

repoze.retry

https://travis-ci.org/repoze/repoze.retry.png?branch=master Documentation Status https://img.shields.io/pypi/v/repoze.retry.svg https://img.shields.io/pypi/pyversions/repoze.retry.svg

This package implements a WSGI middleware filter which intercepts “retryable” exceptions and retries the WSGI request a configurable number of times. If the request cannot be satisfied via retries, the exception is reraised.

Installation

Install using setuptools, e.g. (within a virtualenv):

$ easy_install repoze.retry

or using pip:

$ pip install repoze.retry

Usage

For details on using the various components, please see the documentation in docs/index.rst. A rendered version of that documentation is also available online:

Reporting Bugs

Please report bugs in this package to

https://github.com/repoze/repoze.retry/issues

Obtaining Source Code

Download development or tagged versions of the software by visiting:

https://github.com/repoze/repoze.retry

repoze.retry Changelog

1.4 (2016-06-03)

  • Add support for testing under Travis.

  • Add support for Python 3.4 and 3.5 and PyPy3.

  • Drop support for Python 2.6 and 3.2.

1.3 (2013-10-15)

  • Add support for Python 3.2 and 3.3.

1.2 (2012-07-12)

  • Make sure app_iter gets closed when there is a broken pipe or other exception that interrupts the response generator.

1.1 (2012-03-24)

  • Allow suppression of tracebacks being written to wsgi.errors during retries.

  • Fix handling of case where environ[‘CONTENT_LENGTH’] is an empty string.

1.0 (2010-08-09)

  • Moved documentation to Sphinx.

  • Micro-optimization in lookup of ‘wsgi.errors’ from WSGI environ.

0.9.4 (2010-03-01)

  • Fixed bug where wsgi.input read errors were not being caught for payloads large enough to cause a chunked read. Also expanded the error handling for this part to catch IOError in addition to socket.error, since mod_wsgi has been observed to raise IOError in some cases.

0.9.3 (2009-09-30)

  • Don’t write a temporary file unless the request content length is greater than 2MB (use a StringIO instead).

  • Make ZPublisher.Publish:Retry exceptions retryable (via a soft dependency). This makes repoze.retry work the same as the Zope 2 publisher when that module is installed.

  • 100% test coverage.

  • Change documentation to show proper retryable exception syntax in paste config.

0.9.2 (2008-07-30)

  • Close the app_iter at appropriate points to silence lint errors.

  • Return a Bad Request error if we get a socket error while reading input.

  • Fix traceback output to wsgi.errors (it was going to console).

  • Assert that downstream app must call start_response before successfully returning.

0.9.1 (2008-06-18)

  • Seek wsgi.input back to zero before retrying a request due to a conflict error.

0.9 (2008-06-15)

  • Fixed concurrency bug whereby a response from one request might be returned as result of a different request.

  • Initial PyPI release.

0.8

  • Added WSGI conformance testing for the middleware.

0.7

  • Made the retryable exception(s) configurable, removing the hardwired dependency on ZODB3.

0.6

  • Relaxed requirement for ZODB 3.7.2, since we might need to use the package with other verions.

0.5

  • Depend on PyPI release of ZODB 3.7.2. Upgrade to this by doing bin/easy_install -U ‘ZODB3 >= 3.7.2, < 3.8.0a’ if necessary.

0.4

  • Write retry attempts to ‘wsgi.errors’ stream if availabile.

  • Depend on rerolled ZODB 3.7.1 instead of zopelib.

  • Add license and copyright, change trove classifiers.

0.3

  • We now buffer the result of a downstream application’s ‘start_response’ call so we can retry requests which have already called start_response without breaking the WSGI spec (the server’s start_response may only be called once unless there is an exception, and then it needs to be called with an exc_info three-tuple, although we’re uninterested in that case here).

0.2

  • The entry point name was wrong (it referred to “tm”). Change it so that egg:repoze.retry#retry should work in paste configs.

  • Depend on zopelib rather than ZODB 3.8.0b3 distribution, because the ZODB distribution pulls in various packages (zope.interface and ZEO most notably) that are incompatible with stock Zope 2.10.4 apps and older sandboxes. We’ll need to revisit this.

0.1

  • Initial release.

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

repoze.retry-1.4.tar.gz (27.4 kB view details)

Uploaded Source

Built Distributions

repoze.retry-1.4-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

repoze.retry-1.4-py2-none-any.whl (12.2 kB view details)

Uploaded Python 2

File details

Details for the file repoze.retry-1.4.tar.gz.

File metadata

  • Download URL: repoze.retry-1.4.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for repoze.retry-1.4.tar.gz
Algorithm Hash digest
SHA256 3d0f9e19957a185084ef9e9dae920b2a11ed38de49c395151f3c2fcffe1c07a1
MD5 a382a68e6ffaabf42cd6cf76c05d6c7f
BLAKE2b-256 93580d6341bc44802de6776bdafe8a6d0891b1e25d9e49032553a5cd4d0096df

See more details on using hashes here.

File details

Details for the file repoze.retry-1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for repoze.retry-1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c27762496dd2ef1ed3af07e4123aa8c081df5301014ea1453451d6643f6fef4d
MD5 98c4c71cabdda6c8ba9a8cbfb2c0e4a8
BLAKE2b-256 69a6fd85179667e1b64795a8ae819de969f7bb3ca6f057ca862442a1af4244e3

See more details on using hashes here.

File details

Details for the file repoze.retry-1.4-py2-none-any.whl.

File metadata

File hashes

Hashes for repoze.retry-1.4-py2-none-any.whl
Algorithm Hash digest
SHA256 c4c65e0e57345546c7ad001e168be7e41d058cf31e512ebbf4f6058601faedc6
MD5 359d07d920096021c3b02cc52e18dda9
BLAKE2b-256 d3d14faa9bef0b3284328b429c66e5433940c00c5dc430ff354847613d524911

See more details on using hashes here.

Supported by

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