python - 出现错误时休眠,python
问题描述
所以我有一种情况,我要连续 12 小时使用互联网连接并调用 api。但是灯每 10 分钟就会熄灭一次。是否可以写一个try,除了会导致延迟10分钟的函数,以防产生超时错误。希望10分钟后能恢复供电。| 这是我目前正在使用的:
try:
a=translator.translate(str(x1),dest='hi')
b=translator.translate(str(x2),dest='hi')
except:
sleep(60*10)
解决方案
您可以使用该retry
模块进行此类重试异常。这使代码看起来更干净。pip install retry
应该安装模块
from retry import retry
@retry(Exception, delay=10*60, tries=-1)
def my_code_that_needs_to_be_retried_for_ever():
a=translator.translate(str(x1),dest='hi')
b=translator.translate(str(x2),dest='hi')
# Call the function
my_code_that_needs_to_be_retried_for_ever()
使用上面的代码,my_code_that_needs_to_be_retried_for_ever
每当函数块内的代码引发异常时,它将永远每 60*10 秒(10 分钟)重试一次(因为尝试设置为 -1)
推荐阅读
- swiftui - SwiftUI - 如何使用按钮显示文本,然后使用计时器
- sql-server - 在不授予权限的情况下通过 SQL 查询获取磁盘的全部容量?
- django-rest-framework - Django 可写嵌套序列化器 - 错误非空约束
- java - 我可以在@Value 注释中传递变量来读取属性文件,其键存储在字符串变量中吗?
- php - 我想从此查询中排除一些公司名称
- kubernetes - 从 kubernetes 内部的 InfluxDb 导出数据
- java - 我们可以使用 Liquibase 监控数据库表中新添加的数据吗?
- apache-spark - 我们如何在 Spark 结构化流 2.4.4 中缓存/持久化数据集
- apache-spark - Kubernetes 与 Spark 与 Kubernetes 上的 Spark
- ios - iOS PencilKit 不绘图