跳转到主要内容

实现可重试异常的中间件

项目描述

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

此包实现了一个WSGI中间件过滤器,该过滤器拦截“可重试”异常,并按可配置的次数重试WSGI请求。如果请求无法通过重试满足,则异常将被重新抛出。

安装

使用setuptools安装,例如(在虚拟环境中)

$ easy_install repoze.retry

或使用pip

$ pip install repoze.retry

使用说明

有关使用各种组件的详细信息,请参阅 docs/index.rst 中的文档。该文档的渲染版本也在线上可用

报告错误

请将此软件包的错误报告给

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

获取源代码

通过访问以下链接下载软件的开发或标记版本

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

repoze.retry 更新日志

2.0 (2023-01-23)

  • 自 2.0b1 以来没有变化。

2.0b1 (2023-01-16)

  • 添加对 Python 3.9、3.10 和 3.11 的支持。

  • 停止对 Python 2.7、3.5 和 3.6 的支持。

  • 切换到使用 'pytest' 运行单元测试。

  • 添加 Github Actions 工作流程以执行单元测试/覆盖率。

1.5 (2020-08-27)

  • 添加对 Python 3.6、3.7 和 3.8 的支持。

  • 停止对 Python 3.3 和 3.4 的支持。

  • 在重试时添加可配置的延迟和回退。

  • 默认重试 transaction.interfaces.TransientError(如果可导入)。

1.4 (2016-06-03)

  • 添加对 Travis 下的测试的支持。

  • 添加对 Python 3.4 和 3.5 以及 PyPy3 的支持。

  • 停止对 Python 2.6 和 3.2 的支持。

1.3 (2013-10-15)

  • 添加对 Python 3.2 和 3.3 的支持。

1.2 (2012-07-12)

  • 确保在出现中断响应生成器的异常(如断开的管道)时关闭 app_iter。

1.1 (2012-03-24)

  • 在重试期间允许抑制写入 wsgi.errors 的跟踪信息。

  • 修复了处理 environ['CONTENT_LENGTH'] 为空字符串的情况。

1.0 (2010-08-09)

  • 将文档移至 Sphinx。

  • 对从 WSGI environ 中查找 'wsgi.errors' 的微优化。

0.9.4 (2010-03-01)

  • 修复了 wsgi.input 读取错误未被捕获的漏洞,这些错误足以引起分块读取。还扩展了该部分的错误处理,以捕获 IOError 以及 socket.error,因为 mod_wsgi 已观察到在某些情况下引发 IOError。

0.9.3 (2009-09-30)

  • 除非请求内容长度大于 2MB,否则不要写入临时文件(使用 StringIO 代替)。

  • 使 ZPublisher.Publish:Retry 异常可重试(通过软依赖)。这使得当该模块安装时,repoze.retry 与 Zope 2 发布者的工作方式相同。

  • 100% 测试覆盖率。

  • 更改文档以显示 paste 配置中正确的可重试异常语法。

0.9.2 (2008-07-30)

  • 在适当的位置关闭 app_iter 以消除 lint 错误。

  • 如果读取输入时出现套接字错误,则返回一个错误请求错误。

  • 修复了写入 wsgi.errors 的跟踪输出(它原本要写入控制台)。

  • 断言下游应用程序必须在成功返回之前调用 start_response。

0.9.1 (2008-06-18)

  • 在因冲突错误而重试请求之前,将 wsgi.input 查找回零。

0.9 (2008-06-15)

  • 修复了并发错误,其中一个请求的响应可能会被另一个请求返回。

  • 初始 PyPI 发布。

0.8

  • 添加了中间件的 WSGI 符合性测试。

0.7

  • 使可重试的异常(们)可配置,移除了对 ZODB3 的硬编码依赖。

0.6

  • 放宽了对 ZODB 3.7.2 的要求,因为我们可能需要使用其他版本的软件包。

0.5

  • 依赖于 PyPI 发布的 ZODB 3.7.2。如果需要,通过运行 bin/easy_install -U 'ZODB3 >= 3.7.2, < 3.8.0a' 来升级。

0.4

  • 如果可用,将重试尝试写入 'wsgi.errors' 流。

  • 依赖于重新打包的 ZODB 3.7.1 而不是 zopelib。

  • 添加许可和版权信息,更改 trove 分类器。

0.3

  • 我们现在缓冲下游应用程序的 'start_response' 调用结果,以便我们可以重试已调用 start_response 的请求,而不会破坏 WSGI 规范(除非发生异常,否则服务器端 start_response 只能调用一次,然后需要使用 exc_info 三元组调用,尽管我们对此不感兴趣)。

0.2

  • 入口点名称错误(它引用了“tm”)。将其更改为 egg:repoze.retry#retry,以便在 paste 配置中工作。

  • 依赖于 zopelib 而不是 ZODB 3.8.0b3 发布版,因为 ZODB 发布版会引入各种软件包(最著名的是 zope.interface 和 ZEO),这些软件包与 Zope 2.10.4 应用程序和旧沙盒不兼容。我们需要重新考虑这个问题。

0.1

  • 初始发布。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

repoze.retry-2.0.tar.gz (28.8 kB 查看哈希值)

上传时间 源代码

构建分发

repoze.retry-2.0-py3-none-any.whl (10.9 kB 查看哈希值)

上传时间 Python 3

支持者