要在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