首页 > 解决方案 > 在 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、秒,但问题是:

  1. 即使消息将被发送,它仍然会继续尝试,虽然它需要中断
  2. 如果它会失败 3 次,它应该会打印一个错误,我不知道该怎么做

我找到了这个库,但我认为对于这样一个简单的任务来说它是矫枉过正的。谁能帮我解决这个问题?

标签: pythonpython-3.xloopsexception

解决方案


发送这样的消息后,在 try 块中使用中断 -

for x in Retries:
    try:
        print('Hi there')
        break #Add a break here
    except Exception as e:
        time.sleep(x)
Hi there

推荐阅读