python - 在 Python 中重试函数
问题描述
我很难弄清楚如何在 Python 中实现一个简单的重试功能,我的代码应该尝试向电报发送消息固定的次数,如果在 tot 次之后它仍然会失败,打印一个错误。相反,如果它成功了,就中断并继续。
所以我有以下数组:
Retries = [1, 2, 3]
这意味着,如果失败,请等待一秒钟,如果再次失败,请等待 2 秒,然后再等待 3 秒。
然后我有以下代码:
for x in Retries:
try:
updater.bot.send_message(chat_id='myid', text='TEST')
except Exception as e:
time.sleep(x)
此代码将尝试 3 次,每次尝试之间等待 1、2、3、秒,但问题是:
- 即使消息将被发送,它仍然会继续尝试,虽然它需要中断
- 如果它会失败 3 次,它应该会打印一个错误,我不知道该怎么做
我找到了这个库,但我认为对于这样一个简单的任务来说它是矫枉过正的。谁能帮我解决这个问题?
解决方案
发送这样的消息后,在 try 块中使用中断 -
for x in Retries:
try:
print('Hi there')
break #Add a break here
except Exception as e:
time.sleep(x)
Hi there
推荐阅读
- beautifulsoup - 如何使用 BS4 查找所有 id css 选择器
- javascript - 使用 Javascript 模块 Webpack 时出错。函数方法不起作用(“不是函数”错误)
- python - 用一组输入值和固定利率构建一个计算器
- android - 关闭点击通知
- java - 无法在 Java 中解析 RSA publicKey
- visual-studio-2017 - VS2017 中是否有内置方法来清理我的代码中的选项卡?
- amazon-web-services - 如何将变量传递到 AWS Cloudformation cfn-init 文件内容
- javascript - 当我尝试扮演所有做出反应的人时,awaitReactions 不起作用
- javascript - JS 访问 forloop 中的每一个元素
- firebase - Firebase:如何在同一个项目中处理两个 PWA 应用程序?