如果返回错误,请在1分钟后重试;如果再次出现返回错误,则在2分钟后重试,依此类推



要在1分钟后重试,我使用sleep(60):

import requests
from time import sleep
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"
}
def part_1():
url = f'https://errorerrorerror.com'
response = requests.get(url, headers=headers, timeout=1).json()
return response
def main():
print('Start Run')
try:
part_1()
except:
sleep(60)
main()
if __name__ == '__main__':
main()

为了在出现错误时重试,我在except中添加了对main()的调用。

但我想在每次尝试中再增加1分钟,例如:

出现错误:1分钟后重试
出现另一个错误:2分钟后重试
出现其他错误:3分钟后重试

等等。我应该如何使这成为可能?

在这样的情况下避免递归,因为函数的递归次数没有上限,因为您最终会得到Stack Overflow Error

def main():
sleep_time = 60
while True:
print('Start Run')
try:
part_1()
break
except:
sleep(sleep_time)
sleep_time += 60
if __name__ == '__main__':
main()
pause = 60
while True:
try:
part_1()
except:
sleep(pause)
pause += 60
else:
break

相关内容

  • 没有找到相关文章