问题标签 [python-tenacity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 重试时的Python Tenacity日志异常
我正在使用该tenacity
包重试一个功能。我的重试装饰器如下所示:
在异常情况下,我会收到这样的日志消息:
除了已经记录的内容之外,我还想记录实际的异常(1 行格式,最好不是堆栈跟踪)。有毅力能做到吗?还是我只需要捕获异常、打印并重新引发?
python - 在具有韧性的python中使用try-except sentenec不会按预期重试
您好我正在尝试使用坚韧来发送电子邮件,脚本如下:
问题是,如果我运行email_tables(vars)
输出只运行一次该方法,然后退出脚本。
如果我删除 try-except 语句并且不打印异常,则脚本按预期运行 7 次,然后引发错误。
我不知道我在这里做错了什么才能重试工作。稍后我想在引发异常时将日志保存在文件中,理想情况下它失败了多少次。
提前致谢
python - Python 坚韧:如果所有重试都失败,我如何重试函数而不引发异常?
假设我有以下功能:
该函数将重试 3 次,如果所有 3 次重试都失败,则会引发异常。
如何在不引发异常的情况下使用坚韧进行 3 次重试?就像是:
python-requests - 使用 httpx 异步客户端和坚韧的最佳方式?
通过两种不同的实现,我得到了相当不同的结果。
这是实现1
这是实现2:
我正在针对稳定的 REST API 对其进行测试。以下是基准:
- 100 个成功的 POST 请求:
- 实施 1:0:59 分钟
- 实施 2:0:57 分钟
- 100 个失败的 POST 请求:
- 实施 1:3:26 分钟
- 实施 2:2:09 分钟
这些结果是一致的。谁能帮我理解为什么我的第一个实现比我的第二个慢?
编辑:仅供参考,这就是我调用上述函数的方式(上述函数实际上接收带有 url 和正文的请求元组,为清楚起见对其进行了编辑)
python - 坚韧输出重试的消息?
编码
输出
如何记录它正在重试?如
python - Tenacy retry_error_callback:如何重新提出异常?
添加retry_error_callback
以下代码后。异常被吞没。如何重新引发异常?只需添加不起作用raise
。cb()
python - 更新python中重试的参数
以上是最小的可复制示例。在这里,我想在每次重试中更新方法参数,即当输入作为传递5
并抛出异常时,对于下一次迭代,它应该被更改为6
并再次更改为 1,以便下一次没有发生的后续重试。
有没有办法实现这一点,我也不能把它放在旧的重试方式中(有运行时间计数器并在用尽所需的重试限制时退出)
python - 对异常代码的坚韧提高重试。503
我对重试很陌生,我已经坚持了一段时间,所以我想问一下。
我正在尝试连接到领事,有时当应用程序长时间运行时它会得到 503,我想结合一些逻辑来重试建立新连接。
如何仅过滤重新尝试(408, 500, 503, 504)
python - 带有 msqyl 池的 python 多线程会话
问题是:当我检查数据库中的 id(执行 sql2)时,很少有 sql2 可以正常运行并获得“stuff_id 存在”。但是,经过一些查询,即使数据库中的 stuff_id 已经存在,sql2 也无法正常运行,然后“check_stuff()”再次抓取数据。所以,你可以想象函数 'insert_sql()' 将被引发并导致异常......虽然我可以将 'Insert into' 更改为 'Replace into' 以完成数据插入过程,但我想毫无例外地获取代码并且在重复抓取过程上花费更少的时间。谢谢。