我很难弄清楚如何在 Python 中实现一个简单的重试函数,我的代码应该在固定的时间内尝试将消息发送到电报,如果在总次数之后它仍然会失败,请打印一个错误。相反,如果成功,则中断并继续。所以我有以下数组:Retries = [1, 2, 3]这意味着,如果失败,请等待 1 秒,如果再次失败,请等待 2 秒,然后再等待 3 秒。然后我有以下代码:for x in Retries: try: updater.bot.send_message(chat_id='myid', text='TEST') except Exception as e: time.sleep(x)此代码将尝试三次并在每次尝试之间等待 1、2、3 秒,但问题是:即使消息将被发送,它仍然会继续尝试,同时它需要中断如果它会失败三次,它应该打印一个错误,我不知道该怎么做我找到了这个库,但我认为它对于这样一个简单的任务来说太过分了。谁能帮我解决这个问题?
2 回答
莫回无
TA贡献1865条经验 获得超7个赞
我建议使用 pythons 神秘但有用的循环else子句for:
for x in Retries:
try:
updater.bot.send_message(chat_id='myid', text='TEST')
except Exception as e:
time.sleep(x)
else:
break
else:
# raise the real error here
如果函数调用成功,您的代码将break退出循环并且不会触发该else子句。else仅当循环在没有 . 的情况下完成时才会触发该子句break。
红颜莎娜
TA贡献1842条经验 获得超12个赞
像这样发送消息后,在 try 块中使用中断 -
for x in Retries:
try:
print('Hi there')
break #Add a break here
except Exception as e:
time.sleep(x)
Hi there
添加回答
举报
0/150
提交
取消