实现可重试异常的中间件
项目描述
repoze.retry
此包实现了一个WSGI中间件过滤器,该过滤器拦截“可重试”异常,并按可配置的次数重试WSGI请求。如果请求无法通过重试满足,则异常将被重新抛出。
安装
使用setuptools安装,例如(在虚拟环境中)
$ easy_install repoze.retry
或使用pip
$ pip install repoze.retry
使用说明
有关使用各种组件的详细信息,请参阅 docs/index.rst 中的文档。该文档的渲染版本也在线上可用
报告错误
请将此软件包的错误报告给
获取源代码
通过访问以下链接下载软件的开发或标记版本
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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a7b39a6307598e8afff226b0d83ee9a854cb8f65bc677d7cfb0a3527afa85c07 |
|
MD5 | 34817913251a26e5b774036d10d1cf1a |
|
BLAKE2b-256 | d937ae6900b2fe9b36a0b6199287f6e37c587b4e79915aede473652f21e2cc67 |
repoze.retry-2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ad5e0d338d30c87b97b54f9720b618cf3199d30299a3945108a9ab108fb9680d |
|
MD5 | 0c505fbe580758746aefa4c5bf78848a |
|
BLAKE2b-256 | f73ee4eb3bf12b345acdfad1aa7971e6c838cf7e672dd166d23427f5266a21dc |