gpt4 book ai didi

Python:代码崩溃 - 重新启动脚本

转载 作者:太空宇宙 更新时间:2023-11-03 19:21:48 25 4
gpt4 key购买 nike

imap_host = 'imap.gmail.com'
mail = imaplib.IMAP4_SSL(imap_host)
mail.login(user,passw)
mail.select("inbox") # connect to inbox.

while True:
try:
result, data = mail.uid('search', None, 'UNSEEN')
uid_list = data[0].split()
print len(uid_list), 'Unseen emails.'
time.sleep(60)
except KeyboardInterrupt:
print 'Quitting'
return


Traceback (most recent call last):
File "gmail_new2.py", line 12, in <module>
mail.select("inbox") # connect to inbox
File "/usr/lib/python2.6/imaplib.py", line 642, in select
typ, dat = self._simple_command(name, mailbox)
File "/usr/lib/python2.6/imaplib.py", line 1060, in _simple_command
return self._command_complete(name, self._command(name, *args))
File "/usr/lib/python2.6/imaplib.py", line 890, in _command_complete
raise self.abort('command: %s => %s' % (name, val))
imaplib.abort: command: SELECT => socket error: EOF

该代码连接到 Gmail 并返回未读电子邮件。它工作正常,但有时会返回该错误并崩溃。

当代码崩溃时,如何纠正错误或重新启动代码?

最佳答案

如果失败的语句是 mail.select,您可以将其包装在 try/except block 中并实现重试策略。

如果问题与服务可用性有关,您可能需要尝试exponential backoff strategy使用指数增长的计时器来安排重试尝试。

一个简单的例子如下:

selected = False
retry_timer = 1
while not selected:
try:
mail.select('inbox')
selected = True
except imaplib.abort:
time.sleep(retry_timer)
retry_timer *= 2

关于Python:代码崩溃 - 重新启动脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9462536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com